Pagini recente » Cod sursa (job #2815978) | Cod sursa (job #1786503) | Cod sursa (job #600052) | Cod sursa (job #689996) | Cod sursa (job #1693229)
#include <iostream>
#include <fstream>
#define MAX 1000000
using namespace std;
ifstream in ("fractii.in");
ofstream out ("fractii.out");
int phi[MAX+2];
bool prime[MAX+2];
void ciur_prime (int n){
int i, j;
fill_n(prime,MAX-1,1);
prime[0]=0;
prime[1]=0;
for (i=2; i*i <= n; i++){
if (prime[i]){
for (j=i; j*i <= n; j++){
prime[i*j]=0;
}
}
}
}
void totient (int n){
int i, j;
for (i=1; i <= n; i++) phi[i]=i;
for (i=1; i <= n; i++){
if (prime[i]){
for (j=i; j <=n; j+=i){
phi[j]-=phi[j]/i;
}
}
}
}
int main (){
int i, n;
unsigned long long s=-1;
in >> n;
ciur_prime(n);
totient(n);
for (i=1; i <= n ; i++){
s=s + phi[i]*2;
}
out << s;
return 0;
}