Pagini recente » Cod sursa (job #2245834) | Cod sursa (job #1562801) | Cod sursa (job #1964268) | Cod sursa (job #2501070) | Cod sursa (job #2277547)
#include <iostream>
#include <fstream>
using namespace std;
ifstream intrare("fractii.in");
ofstream iesire("fractii.out");
const int NMAX=1000001;
int i,j;
int n;
bool a[NMAX];
int v[NMAX];
void prime(){
///0-prim;
for(i=2;i<=n;i++)
if(a[i]==false)
for(j=i+i;j<=n;j+=i)
a[j]=true;
}
float totien(int x){
double d;
double r;
d=x;
j=2;
if(x%j==0){
r=1.0/double(j);
d*=1-r;
}
for(j=3;j<=x/2;j+=2)
if(x%j==0 && a[j]==0){
r=1.0/double(j);
d*=1-r;
}
if(a[x]==0 && x!=2){
r=1.0/double(x);
d*=1-r;
}
return d;
}
int main()
{
int s=0;
intrare>>n;
prime();
for(i=2;i<=n;i++)
s+=totien(i);
s*=2;
s++;
iesire<<s;
return 0;
}