Pagini recente » Cod sursa (job #1362814) | Cod sursa (job #431261) | Cod sursa (job #953262) | Cod sursa (job #1700213) | Cod sursa (job #2848362)
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
int N, V[1000001], i, nr;
void euler(int N) // pt fiecare nr de la 1 la N calculeaza cate nr mai mici sau egale cu i sunt prime cu i (pot forma o fractie ireductibila)
{
for (i=1; i<=N; i++)
V[i]=i;
for (i=2; i<=N; i++)
{
if (V[i]==i) //daca nr e prim
{
V[i]--;
for (int j=2; j<=N/i; j++)
V[i*j]=V[i*j]/i*(i-1); //incrementeaza fiecare V[x] pentru fiecare factor din descompunerea lui, la final V[x] continand indictaorul lui Euler pt nr x
}
}
}
int main()
{
ifstream f("fractii.in");
f>>N;
ofstream g("fractii.out");
euler(N);
V[1]=1;;
for (i=2; i<=N; i++)
{
nr+=V[i];
cout<<V[i];
}
nr=nr*2+V[1];
g<<nr;
//cout<<nr;
return 0;
}