Pagini recente » Cod sursa (job #1160830) | Cod sursa (job #1889637) | Cod sursa (job #1508845) | Monitorul de evaluare | Cod sursa (job #1620220)
#include <iostream>
#include <fstream>
using namespace std;
int cmmdc(int x,int y)
{
while(x!=y)
{if(x>y)
x=x-y;
else
y=y-x;}
return y;
}
int main()
{int i,j,n,x,s;
char v[200002];
fstream f("sum.in",ios::in);
fstream g("sum.out",ios::out);
f>>n;
for(i=1;i<=200000;i++)
v[i]=0;
v[2]=1;
i=2;
while(i<=200000)
{j=2;
while(j*i<=200000)
{v[j*i]=1;
j++;}
i++;
while((v[i]==0)&&(i<=200000))
i++;
}
for(j=1;j<=n;j++)
{f>>x;
s=0;
if(v[x]==0)
{for(i=1;i<=2*x;i++)
if(i%x!=0)
s=s+i;}
else
{s=1;
for(i=2;i<x;i++)
if(cmmdc(i,x)==1)
s=s+i;
for(i=x+1;i<=2*x;i++)
if(cmmdc(i,x)==1)
s=s+i;
}
g<<s<<'\n';
}
}