Pagini recente » Cod sursa (job #2023209) | Cod sursa (job #2671366) | Cod sursa (job #2103602) | Cod sursa (job #1211244) | Cod sursa (job #1041120)
#include<fstream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<bitset>
#define DIM 3
#define M1 666013
#define M2 1000003
#define M3 826663
#define M4 123457
#define M5 1111151
#define C 276997
using namespace std;
ofstream g("dtcsu.out");
char s[DIM],ch;
bitset<M1> H1;
bitset<M2> H2;
bitset<M3> H3;
bitset<M4> H4;
bitset<M5> H5;
long long nr;
int sol,st,dr,mij,t,nb,i,n;
int main ()
{
freopen("dtcsu.in","r",stdin);
fread(s,1,DIM,stdin);
while(s[0])
{
n=strlen(s);
for(i=0;i<n;++i)
{
if(s[i]<='9'&&s[i]>='0')
nr=nr*10+s[i]-'0';
else
{
if(nb>C)
{
while(!(nr&1))
nr>>=1;
if(!H1[nr%M1]||!H2[nr%M2]||!H3[nr%M3]||!H4[nr%M4]||!H5[nr%M5])
{
nr=0;
continue;
}
while(nr%3==0)
nr/=3;
while(nr%5==0)
nr/=5;
while(nr%7==0)
nr/=7;
while(nr%11==0)
nr/=11;
if(nr==1)
sol++;
}
else
if(nb<C)
{
nb++;
if(nr&1)
{
H1[nr%M1]=true;
H2[nr%M2]=true;
H3[nr%M3]=true;
H4[nr%M4]=true;
H5[nr%M5]=true;
}
}
else
nb++;
nr=0;
}
}
ch=0;
scanf("%c",&ch);
if(!ch)
break;
s[0]=ch;
fread(s+1,1,DIM,stdin);
}
g<<sol;
return 0;
}