#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
const int MAXV = 1e7;
vector<bool> appear(MAXV + 1);
vector<bool> sieve(MAXV + 1);
int main() {
int N; cin >> N;
vector<int> candy(N);
int last = MAXV;
for (int i = 0; i < N; i++) {
cin >> candy[i];
appear[candy[i]] = true;
last = min(last, candy[i]);
}
i64 ans = 0;
for (int i = 1; i <= MAXV; i++) {
if (sieve[i]) { last = i; continue; }
if (!appear[i]) { continue; }
bool f = false;
for (int j = 2 * i; j <= MAXV; j += i) {
if (appear[j] && sieve[j]) { f = true; }
sieve[j] = true;
}
ans += f ? 0 : i - last;
}
cout << ans << endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |