Cod sursa(job #349926)

Utilizator bog29Antohi Bogdan bog29 Data 21 septembrie 2009 21:15:17
Problema Sum Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<fstream>
#define dmax 200003
using namespace std;
ifstream in("sum.in");
ofstream out("sum.out");
int n,dv[100],t,nrd;
bool tmp[dmax];
void getdiv(int k)
{	int i;
	for(i=2;i<=n;i++)
		if(k%i==0)
		{	nrd++;
			dv[nrd]=i;
			while(k%i==0)
				k=k/i;
			getdiv(k);
			return;
		}	
}
void solve()
{	int i,j;
	long long s=0;
	getdiv(n);
	for(i=1;i<=nrd;i++)
		for(j=dv[i];j<=dmax;j+=dv[i])
			tmp[j]=1;
	for(i=1;i<=2*n;i++)
		if(!tmp[i])
			s+=i;
	out<<s<<'\n';	
	for(i=1;i<=nrd;i++)
		dv[i]=0;
	nrd=0;
	for(i=1;i<=dmax;i++)
		tmp[i]=0;
}
int main()
{	int i;
	in>>t;
	for(i=1;i<=t;i++)
	{	in>>n;
		solve();
	}
	in.close();
	out.close();
	return 0;
}