Cod sursa(job #2027794)
| Utilizator | Data | 26 septembrie 2017 18:40:03 | |
|---|---|---|---|
| Problema | Fractii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int main() {
long long p,q,r,n,c[1000000],i,j,t;
f>>n;
for(i=2; i<=n; i++)
c[i]=1;
for (i=2; i<=n; i++)
{
if(c[i]==1)
for (j=2*i; j<=n; j+=i)
c[j]=0;
}
long long nr=n;
for (p=2; p<=n; p++)
{
q=n;
if(c[p]==1)
q-=n/p;
else
for (r=2; r<=p/2; r++)
if(p%r==0)
if(c[r]==1)
{
q=q-n/r;
for(t=2;t<=r-1;t++)
if(p%t==0 && c[t]==1)
q=q+n/(r*t);
}
nr=nr+q;
}
g<<nr;
f.close();
g.close();
return 0;
}
