Pagini recente » Cod sursa (job #1592966) | Cod sursa (job #6072) | Cod sursa (job #1414345) | Cod sursa (job #2080225) | Cod sursa (job #6073)
Cod sursa(job #6073)
#include<fstream.h>
#define input "fractii.in"
#define output "fractii.out"
char a[1000000];
long tot(long p)
{
int i=2;
long t=p;
while(i<=p)
{
if(a[i]!='1'&&p%i==0)
{
t=t*(i-1)/i;
while(p%i==0)
p=p/i;
if(a[p]!='1')
{
t=t*(p-1)/p;
break;
}
}
i++;
}
return t;
}
int main()
{
long n,p,q;
long i,nr[16];
ifstream fin(input);
ofstream fout(output);
fin>>n;
a[1]='1';
for(i=1;i<=16;i++)
nr[i]=0;
nr[1]=1;
for(p=2;p<=n;p++)
{
if(a[p]!='1')
{
nr[1]+=2*(p-1);
for(q=p+p;q<=n;q=q+p)
a[q]='1';
}
else
nr[1]+=2*tot(p);
i=1;
while(nr[i]>9)
{
nr[i+1]+=nr[i]/10;
nr[i]=nr[i]%10;
i++;
}
}
i=15;
while(i>0)
{
if(nr[i]>0)
fout<<nr[i];
i--;
}
fin.close();
fout.close();
return 0;
}