Pagini recente » Cod sursa (job #2999301) | Cod sursa (job #777264) | Cod sursa (job #359370) | Cod sursa (job #948473) | Cod sursa (job #1391573)
#include <fstream>
#include <bitset>
#include <ctime>
#include <cstring>
#include <cstdlib>
#define read 276997
#define maximum 800000
using namespace std;
ifstream f("dtcsu.in");
ofstream g("dtcsu.out");
bitset <800000> v;
const int prim[]={2,3,5,7,11};
long long x;
int q,k=4,h[5],sol;
char s[20];
int main()
{
int i,j;
srand(time(0));
for (i=1;i<=k;i++)
h[i]=rand()%(maximum-maximum/8)+maximum/8;
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++;
}
for (j=1;j<=k;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=1;i<=k;i++)
if (v[x%h[i]]==0) {
x=0;
break;
}
if (x==0)
continue;
for (i=0;i<=4;i++)
while (x%prim[i]==0)
x/=prim[i];
if (x!=1)
continue;
sol++;
}
g<<sol;
return 0;
}