Pagini recente » Cod sursa (job #1969287) | Cod sursa (job #1494229) | Cod sursa (job #265303) | Cod sursa (job #2653678) | Cod sursa (job #1502678)
#include<fstream>
#define MAX 1000001
using namespace std;
int n,i,j,ciur[MAX];
long phi[MAX];
int main(){
ifstream in("fractii.in");
in>>n;
in.close();
long nr=1,nrp;
i=2;
while (i<=MAX){
if (ciur[i]==0)
for (j=2*i;j<=MAX;j+=i)
if (ciur[j]==0)
ciur[j]=i;
i++;
}
for (i=2;i<=n;i++)
if (ciur[i]==0)
{
nr+=(i-1)*2;
phi[i]=i-1;
}
else{
if ((i/ciur[i])%ciur[i]==0)
nrp=phi[i/ciur[i]]*ciur[i];
else
nrp=phi[i/ciur[i]]*(ciur[i]-1);
nr+=2*nrp;
phi[i]=nrp;
}
ofstream out("fractii.out");
out<<nr;
out.close();
return 0;
}