Pagini recente » Cod sursa (job #2024412) | Cod sursa (job #3039508) | Cod sursa (job #2846813) | Cod sursa (job #2023634) | Cod sursa (job #590869)
Cod sursa(job #590869)
#include<fstream>
#define NrP 1000
using namespace std;
int primes[NrP],phi[1000000];
void GetPrimes(int n)
{
int i,j;
for(i=2;i<=n;i++)
if(primes[i] == 0)
for(j = 2*i;j<=n;j+=i)
primes[j] = 1;
}
int main()
{
int pas,i,j,n,s = 0;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
fin>>n;
GetPrimes(n);
for(i=1;i<=n;i++)
phi[i] = 1;
s = 1;
for(i=2;i<=n;i++)
{
if(primes[i] == 0)
{
phi[i] = i-1;
pas = i*i;
s+=phi[i];
for(j = 2*i;j<=n;j+=i)
if(j == pas)
{
phi[j] = i*phi[j/i];
pas = pas*i;
}
else
phi[j] = phi[j]*phi[i];
}
else
s+=phi[i];
}
fout<<2*s-1<<"\n";
return 0;
}