Pagini recente » Cei mai harnici utilizatori infoarena | Cod sursa (job #2345690)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
long int prim[1000005],N=4;
int cmmdc(int x,int y)
{
while(x!=y)
{
if(x>y)
x=x-y;
else
y=y-x;
}
return x;
}
int euler(long int x)
{
int i,s=0;
for(i=1;i<=N;i++)
if(cmmdc(i,x)==1)
s++;
return s;
}
int erastostene()
{
long int i,j;
for(i=2;i<=N;i++)
if(prim[i]==0)
for(j=2;j*i<=N;j++)
prim[j*i]=1;
}
int main()
{
long int i,s;
fin>>N;
s=N;
erastostene();
for(i=2;i<=N;i++)
s=s+euler(i);
fout<<s;
fin.close();
fout.close();
}