Pagini recente » Cod sursa (job #1084358) | Cod sursa (job #1225310) | Cod sursa (job #423498) | Cod sursa (job #2615109) | Cod sursa (job #615416)
Cod sursa(job #615416)
#include <iostream>
#include <fstream>
using namespace std;
int i = 1 , divizori[100];
long long int ciur[1000];
void init(int n , int m)
{
int j ;
for(j = 0 ; j < n ; j++)
divizori[j]=-1;
for(j = 1 ; j <= m ; j++)
ciur[j]=j;
}
void desc (int n)
{
int d ;
for( d = 2 ; d <= n/2 ; d++ )
if( n % d == 0 && divizori[i - 1] != d )
{
divizori[i] = d;
i++;
}
divizori[i] = n;
}
int main ()
{
long int n , x;
long long int s , v[1000] ;
int p , j;
fstream f("sum.in",ios::in);
fstream g("suma.out",ios::out);
f>>n;
for(i = 1 ; i < n+1 ; i++)
f>>v[i];
for( p = 1 ; p < n+1 ; p++ )
{
s = 0;
x = v[p];
init( 100 , 2*x );
desc(x);
for( i = 1 ; divizori[i] != -1 ; i++)
for( j = 1 ; j <= (2*x)/divizori[i] ;j++)
ciur[j *divizori[i] ]= -1;
for( j = 1 ; j < 2*x ; j++ )
if(ciur[j] != -1 )
s += ciur[j];
g<<s<<'\n';
}
return 0;
}