Pagini recente » Cod sursa (job #1429277) | Cod sursa (job #1391693)
#include <fstream>
#include <bitset>
#include <cstring>
#define read 276997
using namespace std;
ifstream f("dtcsu.in");
ofstream g("dtcsu.out");
bitset <4000000> v;
const int mod[]={3682663,1632563,1282653,3182643,2682664,682663};
long long x;
int q,sol;
char s[20];
int main()
{
int i,j;
for (i=1;i<=read;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%mod[j]]=1;
}
}
f>>q;f.get();
for (i=1;i<=q;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==0)
continue;
x/=(x^(x-1))&x;
for (j=0;j<=5;j++)
if (v[x%mod[j]]==0) {
x=0;
break;
}
if (x==0)
continue;
while (x%15==0)
x/=15;
while (x%11==0)
x/=11;
while (x%7==0)
x/=11;
while (x%5==0)
x/=5;
while (x%3==0)
x/=3;
if (x==1)
sol++;
}
g<<sol;
return 0;
}