Cod sursa(job #448114)

Utilizator S7012MYPetru Trimbitas S7012MY Data 2 mai 2010 19:02:06
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <cstdio>
#include <iostream>
using namespace std;

const long long n=100000;
long long m,d=-1,phi[1000001];


inline void euler() {
	int rezultat=0,i,j;
	for (i = 1; i <= n; ++i)
    	phi[i] = i-1;
	for (i = 2; i <= n; ++i) {
    	for (j = 2*i; j <= n; j += i)
        	phi[j] -= phi[i];
	}
}

int main()
{
	int i,x1,x2,x3,x4;
	FILE *f=fopen("sum.in","r");
	FILE *g=fopen("sum.out","w");
	fscanf(f,"%lld",&m);
	euler();
	while(m>=4) {
		fscanf(f,"%d %d %d %d",&x1, &x2, &x3, &x4);
		fprintf(g,"%lld\n%lld\n%lld\n%lld\n", 
			2*phi[x1]*x1,
			2*phi[x2]*x2,
			2*phi[x3]*x3,
			2*phi[x4]*x4);
		m-=4;
	}
	for(i=0; i<m%4; i++) {
		fscanf(f,"%d",&x1);
		fprintf(g,"%lld\n",2*phi[x1]*x1);
	}
	fclose(f);
	fclose(g);
	return 0;
}