Cod sursa(job #1016364)

Utilizator VmanDuta Vlad Vman Data 26 octombrie 2013 09:26:51
Problema Dtcsu Scor Ascuns
Compilator cpp Status done
Runda Marime 0.8 kb
#include <cstdio>
#include <bitset>
using namespace std;

#define ll long long

int Q;
ll X;
int F = 3999991;
bitset<4000000> filter;

int main() {
    freopen("dtcsu.in","r", stdin);
    freopen("dtcsu.out", "w", stdout);
    
    for (int i=0; i<276997; ++i) {
        scanf("%lld", &X);
        filter.set(X % F);
    }

    scanf("%d", &Q);
    int total = 0;
    for (int i=0; i<Q; ++i) {
        scanf("%lld", &X);
        
        if (X==0 || !filter.test(X % F)) {
            continue;
        }
        
        ll a;
        while ((X&1)==0) X>>=1;
        while ((a=X/15)*15==X) X = a;
        while ((a=X/3)*3==X) X = a;
        while ((a=X/5)*5==X) X = a;
        while ((a=X/7)*7==X) X = a;
        while ((a=X/11)*11==X) X = a;
        total += (X == 1);
    }
    printf("%d\n", total);
    
    return 0;
}