Cod sursa(job #97615)
Utilizator | Ionescu Robert Marius Robytzza | Data | 7 noiembrie 2007 19:11:02 |
---|---|---|---|
Problema | Sum | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream.h>
ifstream fin("sum.in");
ofstream fout("sum.out");
long n,x,sir[100001];
long cmmdc(long a,long b){
while (b){
long r=a%b;
a=b;
b=r;}
return a;
}
void suma(){
long S=0;
for (long a=1;a<=2*x;a++)
if (cmmdc(a,x)==1)
S+=a;
sir[x]=S;
fout<<S<<"\n";
}
void citire(){
fin>>n;
for (long i=0;i<n;i++){
fin>>x;
if (sir[x]==0)
suma();
else
fout<<sir[x]<<"\n";}
fin.close();
}
int main(){
citire();
fin.close();
fout.close();
return 0;
}