Pagini recente » Cod sursa (job #2565480) | Cod sursa (job #2204646) | Cod sursa (job #2940625) | Cod sursa (job #1037080) | Cod sursa (job #1038781)
#include <iostream>
#include <cstdio>
#include <bitset>
#define NR2 10
#define NR 276997
#define MOD1 (1<<19)
#define MOD2 666013
#define MOD3 666019
#define MOD4 123457
#define MOD5 1000003
#define MOD6 1000033
#define MOD7 200003
#define MOD8 1111151
#define MOD9 150001
#define MOD10 300007
using namespace std;
bitset <MOD1> H1;
bitset <MOD2> H2;
bitset <MOD3> H3;
bitset <MOD4> H4;
bitset <MOD5> H5;
bitset <MOD6> H6;
bitset <MOD7> H7;
bitset <MOD8> H8;
//bitset <MOD9> H9;
//bitset <MOD10> H10;
inline bool Good(const long long x)
{
//if (!H1[x&MOD1] || !H2[x%MOD2] || !H3[x%MOD3] || !H4[x%MOD4] || !H5[x%MOD5] || !H6[x%MOD6] || !H7[x%MOD7] || !H8[x%MOD8] || !H9[x%MOD9] || !H10[x%MOD10])
if (!H1[x&MOD1] || !H2[x%MOD2] || !H3[x%MOD3] || !H4[x%MOD4] || !H5[x%MOD5] || !H6[x%MOD6] || !H7[x%MOD7] || !H8[x%MOD8])
return false;
return true;
}
inline bool Good2(long long nr)
{
if (nr == 0)
return false;
while ((nr & 1LL) == 0)
nr >>= 1LL;
while (nr % 3LL == 0)
nr /= 3LL;
while (nr % 5LL == 0)
nr /= 5LL;
while (nr % 7LL == 0)
nr /= 7LL;
while (nr % 11LL == 0)
nr /= 11LL;
if (nr == 1LL)
return true;
return false;
}
int main()
{
char ch[100];
freopen("dtcsu.in", "r", stdin);
for (int i = 1; i<=NR; ++i)
{
gets(ch);
long long x = 0;
int ind = 0;
while (ch[ind])
{
x = 0LL;
while ('0' <= ch[ind] && ch[ind] <= '9')
{
x = x*10 + ch[ind] - '0';
++ind;
}
H1[x&MOD1] = true;
H2[x%MOD2] = true;
H3[x%MOD3] = true;
H4[x%MOD4] = true;
H5[x%MOD5] = true;
H6[x%MOD6] = true;
H7[x%MOD7] = true;
H8[x%MOD8] = true;
//H9[x%MOD9] = true;
//H10[x%MOD10] = true;
while (('0' > ch[ind] || ch[ind] > '9') && ch[ind])
++ind;
}
}
gets(ch);
int Q = 0;
int i;
for (i=0; ch[i]; ++i)
Q = Q*10 + ch[i] - '0';
int answer = 0;
while (Q--)
{
gets(ch);
long long x = 0LL;
int i;
for (i=0; ch[i]; ++i)
x = x*10 + ch[i] - '0';
if (Good(x))
if (Good2(x))
++answer;
}
FILE *g = fopen("dtcsu.out", "w");
fprintf(g, "%d\n", answer);
fclose(g);
return 0;
}