Cod sursa(job #538518)

Utilizator Antonius74Antonius Cezar Hegyes Antonius74 Data 21 februarie 2011 17:00:07
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>
#include <vector>
using namespace std;

int main()
{	
	freopen ("fractii.in","r", stdin);
	freopen ("fractii.out","w", stdout);

	unsigned long int n,anz=0;
	double tot;
	vector <unsigned long int> zahlen;
	scanf ("%d", &n);

	zahlen.resize (n+1);
	zahlen[1]=0;
	zahlen[2]=1;
	for (int i=3;i<=n;i++)
	{
		zahlen[i]=1;
		if (i%2==0)
			zahlen[i]=0;
		else
			for (int t=3;t*t<=i;t+=2)
				if (i%t==0 && i!=t)
				{
					zahlen[i]=0;
					break;
				}
	}

	for (int i=2;i<=n;i++)
	{
		tot=(float)i;
		for (int j=2;j<=n;j++)
			if (zahlen[j]==1 && i%j==0)
				tot*=1.0-1.0/j;
		anz+=(int)tot;
	}
			

		
	printf ("%u \n", anz*2+1);
}