Pagini recente » Cod sursa (job #2028787) | Cod sursa (job #1345490) | Cod sursa (job #2364186) | Cod sursa (job #794144) | Cod sursa (job #915939)
Cod sursa(job #915939)
#include<fstream>
#include<string.h>
#define DIM 1500000
#define NM 100001
using namespace std;
ifstream f("sum.in");
ofstream g("sum.out");
int i,n,x,j,d,v[NM],t;
long long nr;
char s[DIM];
int main ()
{
f.get(s,DIM,EOF);
v[1]=1;
for(i=2;i<=NM;++i)
if(!v[i])
for(j=2;j*i<=NM;++j)
v[i*j]=1;
t=0;
for(i=1;i<=NM;++i)
if(!v[i])
v[++t]=i;
x=0;
i=0;
while(s[i]<='9'&&s[i]>='0'){
x=x*10+s[i]-'0'; ++i; }
++i;
for(;s[i];++i)
{
x=0;
while(s[i]<='9'&&s[i]>='0'){
x=x*10+s[i]-'0'; ++i; }
d=x;
nr=1;
for(j=1;v[j]*v[j]<=x;++j)
if(x%v[j]==0)
{
nr*=(v[j]-1);
x/=v[j];
while(x%v[j]==0)
{ x/=v[j]; nr*=v[j]; }
}
if(x!=1)
nr*=x-1;
g<<2*nr*d<<"\n";
}
return 0;
}