Pagini recente » Rating Mihaila Eduard (BrokenV1rus) | Cod sursa (job #1064333) | Cod sursa (job #1647213) | Cod sursa (job #1379230) | Cod sursa (job #2161816)
#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;
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;j++)
euler[i*j]=0;
}
for(int i=1;i<=n;i++)
cout<<euler[i]<<" ";
cout<<endl;
for(int i=1;i<=n;i++)
if(!(euler[i]))
{
int nr=0;
for(int j=1;j<i;j++)
if(cmmdc(i,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();
for(int i=1;i<=n;i++)
cout<<euler[i]<<" ";
return 0;
}