Pagini recente » Cod sursa (job #1158797) | Cod sursa (job #2536528) | Cod sursa (job #816926) | Cod sursa (job #788576) | Cod sursa (job #1400801)
#include <fstream>
#define nmax 1000010
using namespace std;
ifstream in("fractii.in");
ofstream out("fractii.out");
int N, A[nmax];
long long w;
int main()
{
in>>N;
for(int i=2;i<=N;i++)
A[i]=i-1; //presupunem ca toate numerele sunt prime
for(int i=2;i<=N;i++)
{
for(int j=i+i;j<=N;j+=i)
A[j]-=A[i]; //dupa numarul i scadem din toti multiplii lui numerele prime-ntre ele mai mici decat i
w+=A[i]; //adaugam numarul de numere mai mici decat i care sunt prime-ntre ele
}
out<<2*w+1; //afisam numarul de fractii si inversele lor + 1 (1/1, 2/2, 3/3, 4/4 ...)
in.close();out.close();return 0;
}