Pagini recente » Monitorul de evaluare | Cod sursa (job #1799418) | Cod sursa (job #412969) | Istoria paginii utilizator/therain | Cod sursa (job #1035192)
#include <fstream>
#include <algorithm>
#include <string>
using namespace std;
#define Nmax 276997
using namespace std;
ifstream f("dtcsu.in");
ofstream g("dtcsu.out");
int Q,sol;
long long N,x;
string tmp;
int Putere[]={0,0,62,39,0,28,0,23,0,0,0,19};
unsigned long long Pow[20][100];
int main()
{
for(int i=2;i<=11;++i)
{
long long P=1;
Pow[i][0]=1;
for(int j=1;j<=Putere[i];++j)P*=i,Pow[i][j]=P;
}
for(int i=1;i<=Nmax;++i)getline(f,tmp);
getline(f,tmp);
Q=0;
for(int i=0;i<tmp.size();++i)Q=Q*10+(tmp[i]-'0');
for(int i=1;i<=Q;++i)
{
getline(f,tmp);
long long N=0;
for(int i=0;i<tmp.size();++i)N=N*10+(tmp[i]-'0');
if(N)
{
int j=0;
for(j=0;j<=62;++j)
if(N % Pow[2][j])break;
N/=Pow[2][j-1];
j=0;
for(j=0;j<=39;++j)
if(N % Pow[3][j])break;
N/=Pow[3][j-1];
j=0;
for(j=0;j<=39;++j)
if(N % Pow[5][j])break;
N/=Pow[5][j-1];
j=0;
for(j=0;j<=39;++j)
if(N % Pow[7][j])break;
N/=Pow[7][j-1];
j=0;
for(j=0;j<=39;++j)
if(N % Pow[11][j])break;
N/=Pow[11][j-1];
if(N==1)++sol;
}
}
g<<sol<<'\n';
f.close();g.close();
return 0;
}