Cod sursa(job #802435)

Utilizator Detrol2kGuianu Leon Detrol2k Data 26 octombrie 2012 18:11:50
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
using namespace std;

#define MAX 100001
short int viz[MAX];
int v[MAX];

void ciur()
{
	int i, j;
	
	for(i=1; i<=MAX; i++)
		v[i] = i-1;
	for(i=2; i<=MAX; i++)
		if(viz[i]==0)
			if(i*i <= MAX)
				for(j=i*i; j<=MAX; j+=i)
				{
					viz[j] = 1;
					v[j] -= v[i];
				}
			else
				break;
}

int main()
{
	//ifstream f("sum.in");
	//ofstream g("sum.out");
	FILE *f=fopen("sum.in","r");
	FILE *g=fopen("sum.out","w");
	
	int t, n, x;
	long long sum;
	
	ciur();
	
	//Read
	//f>>n;
	fscanf(f,"%d",&n);
	for(t=1; t<=n; t++)
	{
		//f>>x;
		fscanf(f,"%d",&x);
		
		//Compute
		sum = v[x]*x*2;
		
		//Print
		//g<<sum<<endl;
		fprintf(g,"%d\n",sum);
	}
}