Cod sursa(job #915939)

Utilizator Kira96Denis Mita Kira96 Data 15 martie 2013 16:31:10
Problema Sum Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
#include<string.h>
#define DIM 1500000
#define NM 100001
using namespace std;
ifstream f("sum.in");
ofstream g("sum.out");
int i,n,x,j,d,v[NM],t;
long long nr;
char s[DIM];
int main ()
{
	f.get(s,DIM,EOF);
	v[1]=1;
	for(i=2;i<=NM;++i)
		if(!v[i])
		for(j=2;j*i<=NM;++j)
			v[i*j]=1;
	t=0;
	for(i=1;i<=NM;++i)
		if(!v[i])
			v[++t]=i;
		x=0;
		i=0;
		while(s[i]<='9'&&s[i]>='0'){
			x=x*10+s[i]-'0'; ++i; }
		++i;
	for(;s[i];++i)
	{
		x=0;
		while(s[i]<='9'&&s[i]>='0'){
			x=x*10+s[i]-'0'; ++i; }
	d=x;
	nr=1;
	for(j=1;v[j]*v[j]<=x;++j)
		if(x%v[j]==0)
		{
			nr*=(v[j]-1);
			x/=v[j];
			while(x%v[j]==0)
			{ x/=v[j]; nr*=v[j]; }
		}
	if(x!=1)
		nr*=x-1;
	g<<2*nr*d<<"\n";
	}
	return 0;
}