Pagini recente » Cod sursa (job #1165728) | Cod sursa (job #2473380) | Cod sursa (job #2969155) | Profil Samoila_Alexandru | Cod sursa (job #538518)
Cod sursa(job #538518)
#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);
}