Cod sursa(job #615416)

Utilizator UgleaEduFMI - Edward UgleaEdu Data 9 octombrie 2011 17:51:29
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#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;
}