Pagini recente » Cod sursa (job #1801006) | Cod sursa (job #2026234) | Cod sursa (job #1794257) | Cod sursa (job #849019) | Cod sursa (job #1419050)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fractii.in");
ofstream out("fractii.out");
const int MAXN = 1000000;
bool isPrime[MAXN+1];
int N;
void citire(){
in>>N;
}
void ciurEratostene()
{
for(int i = 2; i <= MAXN; i++)
if( isPrime[ i ] == 0 )
for(int j = 2*i; j <= MAXN; j+=i)
isPrime[ j ] = 1;
}
void descFact(int n)
{
for(int p = 2; n != 1; p++)
{
int k = 0;
while(n % p == 0){
k++;
n = n/p;
}
cout<<p<<' '<<k<<endl;
}
}
void testDescFact(int n)
{
descFact(n);
}
long long phi(int n)
{
long long res = n;
for(int p = 2; n != 1; p++)
if(n % p == 0){
while(n % p == 0)
n = n/p;
res = res*(p - 1)/p;
}
return res;
}
long long formula(int n){
long long answer = 0;
for(int i = 2; i <= n; i++)
answer += 2*phi( i );
answer+=1;
return answer;
}
int main()
{
//ciurEratostene();
citire();
out<<formula(N);
return 0;
}