Cod sursa(job #1016360)

Utilizator VmanDuta Vlad Vman Data 26 octombrie 2013 09:07:06
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 = 3999991;
bitset<4000000> 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;
}