Cod sursa(job #1035746)

Utilizator raulstoinStoin Raul raulstoin Data 18 noiembrie 2013 19:44:47
Problema Dtcsu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<fstream>

#define NMAX 276997
#define LL long long

using namespace std;

ifstream fin("dtcsu.in");
ofstream fout("dtcsu.out");

int v[]={3,5,7,11,15,21,33,35,55,77,105,165,231,385,1155},q,sol;
LL n,nr;

const int SZ=500000;
char input[SZ+1],*in;

inline LL atoi()
{
	for(;!(*in>='0' && *in<='9') && *in;in++);
 
	if(!*in)
	{
		fin.read(input,SZ);
		in=input;
		for(;!(*in>='0' && *in<='9') && *in;in++);
	}
	for(nr=0LL;*in>='0' && *in<='9';in++)
	{
		nr=nr*10+(*in-'0');
		if(!*(in+1))
		{
			fin.read(input,SZ);
			in=input-1;
		}
	}
	return nr;
}

inline void Div(short val)
{
	for(;n%val==0;n/=val);
}

int main()
{
	fin.read(input,SZ);
	in=input;
	for(int i=0;i<NMAX;i++)
		n=atoi();
	q=atoi();
	for(;q;q--)
	{
		n=atoi();
		for(int i=14;i>=0;i--)
			Div(v[i]);
		sol+=((n>=1 && (n&(n-1))==0));
	}
	fout<<sol;
	return 0;
}