Pagini recente » Cod sursa (job #3192011) | Cod sursa (job #1861207) | Cod sursa (job #1020530) | Cod sursa (job #1281595) | Cod sursa (job #461900)
Cod sursa(job #461900)
#include<fstream.h>
short ciur[1000001];
long a[80000];
long n,i,j,m,aux;
long long sum,c,p;
int main()
{
ifstream f("factii.in");
ofstream g("fractii.out");
f>>n;
for (i=2;i<=n;i++)
if (ciur[i]==0)
{
for (j=i+i;j<=n;j+=i) ciur[j]=1;
a[m++]=i;
}
sum=1;
for (i=2;i<=n;++i)
{
if (ciur[i]==0) sum+=(i-1)*2;
else
{
aux=i;c=1;
for (j=0;j<=m;j++)
{
p=1;
while(aux%a[j]==0)
{
aux=aux/a[j];
p*=a[j];
}
if (p*(a[j]-1)/a[j]>0) c*=p*(a[j]-1)/a[j];
if (aux==1) break;
}
sum+=c*2;
}
}
g<<sum<<"\n";
f.close();
g.close();
}