Nu exista pagina, dar poti sa o creezi ...
Cod sursa(job #2660674)
| Utilizator | Data | 20 octombrie 2020 08:25:33 | |
|---|---|---|---|
| Problema | Pairs | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.87 kb |
#include <fstream>
#include <vector>
#include <bitset>
#include <set>
using namespace std;
ifstream f("pairs.in");
ofstream g("pairs.out");
set<int> mySet;
int n, x, sol, v[100005];
vector<int> lessPrime(int x) {
bitset<1000005> b;
vector<int> output;
for(int d = 2; d * d <= x; ++d) {
if(x % d == 0) {
for(int j = d; j <= x; j += d) {
b[j] = 1;
}
int p = x / d;
for(int j = p; j <= x; j += p) {
b[j] = 1;
}
}
}
for(int i = 2; i < x; ++i) {
if(!b[i]) output.push_back(i);
}
return output;
}
int main() {
f >> n;
for(int i = 1; i <= n; ++i) {
f >> v[i];
mySet.insert(v[i]);
}
for(int i = 1; i <= n; ++i) {
vector<int> primes = lessPrime(v[i]);
for(int j = 0; j < primes.size(); ++j) {
if(mySet.find(primes[j]) != mySet.end()) {
sol++;
}
}
}
g << sol << '\n';
return 0;
}