Cod sursa(job #819266)
Utilizator | Iordan Vlad Vladinho97 | Data | 18 noiembrie 2012 19:23:21 |
---|---|---|---|
Problema | Sum | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include<fstream>
#include<math.h>
using namespace std;
int ind_euler(int x)
{
int rasp=x,d,e,nr=x;
double lim=sqrt((double)x);
d=2;
while(nr>1&&d<=lim)
{
e=0;
while(nr%d==0)
{
e++;
nr/=d;
}
if(e>0)
{
rasp=rasp/d*(d-1);
}
d++;
}
if(nr>1)
rasp=nr-1;
return rasp;
}
int main()
{
int n,x,i,j;
long long rasp;
ifstream f("sum.in");
ofstream g("sum.out");
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
j=ind_euler(x);
rasp=2*j*x;
if(i<n)
g<<rasp<<'\n';
else
g<<rasp;
}
}