Pagini recente » Cod sursa (job #1125230) | Cod sursa (job #2913383) | Cod sursa (job #1267219) | Cod sursa (job #1645072) | Cod sursa (job #1016357)
Utilizator |
Duta Vlad Vman |
Data |
26 octombrie 2013 08:58:50 |
Problema |
Dtcsu |
Scor |
Ascuns |
Compilator |
cpp |
Status |
done |
Runda |
|
Marime |
1.08 kb |
#include <cstdio>
#include <bitset>
using namespace std;
#define ll long long
int Q;
ll X;
int F = 7999999;
bitset<8000000> filter;
void updateFilter(ll X) {
filter.set(X % F);
}
bool checkFilter(ll X) {
if (!filter.test(X % F)) return false;
return true;
}
int main() {
freopen("dtcsu.in","r", stdin);
freopen("dtcsu.out", "w", stdout);
for (int i=0; i<276997; ++i) {
scanf("%lld", &X);
updateFilter(X);
}
/*
for (int i=0; i<nrF; ++i) {
int nr = 0;
for (int j=0; j<100000; ++j)
if (filter[i].test(j)) ++nr;
printf("%d %d\n", nr, F[i]);
}
return 0;
*/
scanf("%d", &Q);
int total = 0;
for (int i=0; i<Q; ++i) {
scanf("%lld", &X);
if (!checkFilter(X)) {
continue;
}
if (X == 0) continue;
while (X%2==0) X/=2;
while (X%3==0) X/=3;
while (X%5==0) X/=5;
while (X%7==0) X/=7;
while (X%11==0) X/=11;
if (X == 1) ++total;
}
printf("%d\n", total);
return 0;
}