Pagini recente » Cod sursa (job #1689078) | Monitorul de evaluare | Cod sursa (job #1793887) | Cod sursa (job #1242275) | Cod sursa (job #1032372)
#include<iostream>
#include<fstream>
#include<stdio.h>
#include<vector>
#include<string.h>
using namespace std;
#define MOD 666013
#define NMAX 276998
#define DIM 20001
char buff[DIM];
int poz=0;
int a[]={2,3,5,7,11};
void citeste(long long &numar)
{
numar = 0;
char semn='+';
while (buff[poz] < '0' || buff[poz] > '9') {
semn = buff[poz];
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
}
while ('0'<=buff[poz] && buff[poz]<='9') {
numar = numar*10 + buff[poz] - '0';
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
}
if (semn == '-')
numar = -numar;
}
inline int bun(long long n)
{
int i;
if(n==1)
return 1;
for(i=4;i>=1;i--) {
while(n%a[i]==0)
n=1LL*n/a[i];
}
if((n & (n - 1) ) == 0)
return 1;
if(n==1)
return 1;
return 0;
}
int main ()
{
int p,i,j,nr;
long long s,n,x,q;
freopen("dtcsu.in","r",stdin);
ofstream g("dtcsu.out");
for(i=1;i<=276997;i++) {
citeste(x);
}
citeste(q);
nr=0;
for(i=1;i<=q;i++) {
citeste(n);
nr=nr+bun(n);
}
g<<nr;
g.close();
return 0;
}