Cod sursa(job #716807)

Utilizator dtoniucDaniel Toniuc dtoniuc Data 19 martie 2012 11:56:59
Problema Sum Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <iostream>
#include <fstream>
#define NMAX 200010
using namespace std;
int t,a[NMAX],c[NMAX];
void ciur()
{
	for(int i=3;i<=NMAX/2;i+=2)
		if(c[i]==0)
			for(int j=i+i;j<=NMAX;j+=i)
				c[j]=1;
}
int main()
{
	ciur();
	ifstream fin("sum.in");
	fin>>t;
	ofstream fout("sum.out");
	while(t)
	{
		int n,s=0;
		fin>>n;
		if(n%2==0)
			for(int j=2;j<=2*n;j+=2)
				a[j]=1;
		for(int i=3;i<=n;i+=2)
			if(c[i]==0 && n%i==0)
				for(int j=i;j<=2*n;j+=i)
					a[j]=1;
		for(int i=1;i<=n+n;i++)
			if(a[i]==0) 
				s+=i;
			else
				a[i]=0;
		t--;
		fout<<s<<'\n';
	}
	return 0;
}