Pagini recente » Cod sursa (job #1462949) | Cod sursa (job #106589) | Cod sursa (job #1838331) | Skiplists | Cod sursa (job #1040168)
#include <fstream>
#include <string.h>
#include <cstdio>
#include <bitset>
#define mod 4455331
#define mod1 200041
#define mod2 267193
#define ll long long
#define buffer_size (1<<16)
using namespace std;
FILE *fin = fopen("dtcsu.in","r");
ofstream fout("dtcsu.out");
char buffer[buffer_size+10];
bitset <mod> s;
bitset <mod1> s1;
bitset <mod2> s2;
int d[5] = {2,3,5,7,11},nr;
unsigned long long x;
int n,i=0,k;
long long get_int ()
{
ll x=0;
do
{
x= x*10 + (buffer[i]-'0');
++i;
if (i==buffer_size)
{
fread (buffer,1,buffer_size,fin);
i=0;
}
}while (buffer[i] != '\n');
++i;
if (i==buffer_size)
{
fread (buffer,1,buffer_size,fin);
i=0;
}
return x;
}
int main()
{
fread (buffer,1,buffer_size,fin);
for (k=1; k<=276997; ++k)
{
x = get_int ();
s[x%mod] = 1;
s1[x%mod1] = 1;
s2[x%mod2] = 1;
}
n = get_int();
for (int k=1; k<=n; ++k)
{
x = get_int();
if (s[x%mod] == 0 || s1[x%mod1]==0 || s2[x%mod2]==0) continue;
for (int i=0; i<5; ++i)
{
while (x%d[i]==0) x/=d[i];
}
if (x==1) ++nr;
}
fout<<nr;
}