Cod sursa(job #1391579)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 18 martie 2015 01:54:02
Problema Dtcsu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
#include <bitset>
#include <cstring>
#define read 276997
using namespace std;
ifstream f("dtcsu.in");
ofstream g("dtcsu.out");
bitset <800000> v;
const int prim[]={2,3,5,7,11};
const int h[]={782663,466013,510003,682663,479593,479593};
long long x;
int q,sol;
char s[20];


int main()
{
    int i,j;
    for (i=1;i<=10;i++) {
        memset(s,0,sizeof(s));
        f.getline(s,20);
        x=0;
        j=0;
        while (s[j]!=NULL) {
            x=x*10+s[j]-'0';
            j++;
        }
        if (x&1)
        for (j=0;j<=5;j++)
            v[x%h[j]]=1;
    }

    f>>q;f.get();
    for (j=1;j<=q;j++) {
        memset(s,0,sizeof(s));
        f.getline(s,20);
        x=0;
        i=0;
        while (s[i]!=NULL) {
            x=x*10+s[i]-'0';
            i++;
        }
        for (i=0;i<=5;i++)
            if (v[x%h[i]]==0) {
                x=0;
                break;
            }
        if (x==0)
            continue;
        x /= (x^(x-1))&x;
        for (i=0;i<=4;i++)
            while (x%prim[i]==0)
                x/=prim[i];
        if (x!=1)
            continue;
        sol++;
    }
    g<<sol;

    return 0;
}