Pagini recente » Cod sursa (job #1370524) | Cod sursa (job #2267102) | Cod sursa (job #2107128) | Istoria paginii runda/wellcodesimulareclasa11-12-4martie | Cod sursa (job #2161766)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int euler[101],n,s=1;
int cmmdc(int a,int b)
{
if(!b)
return a;
else if(a==1 || b==1)
return 1;
else cmmdc(b,a%b);
}
int prim(int var)
{
int nr=0;
for(int i=2;i<=sqrt(var);i++)
if(var%i==0)
nr++;
if(!nr)
return 1;
else return 0;
}
void euler_indicator()
{
euler[1]=1;
euler[2]=1;
for(int i=3;i<=n;i++)
if(prim(i))
{
euler[i]=i-1;
for(int j=2;i*j<=n;i++)
euler[i*j]=0;
}
for(int i=1;i<=n;i++)
if(!(euler[i]))
{
int nr=0;
for(int j=1;j<i;j++)
if(cmmdc(euler[i],euler[j])==1)
nr++;
euler[i]=nr;
}
int s=1;
for(int i=2;i<=n;i++)
s+=2*euler[i];
g<<s;
}
int main()
{
f>>n;
euler_indicator();
return 0;
}