Cod sursa(job #2299747)
Utilizator | Data | 9 decembrie 2018 23:01:27 | |
---|---|---|---|
Problema | Sum | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 1.39 kb |
#include <iostream>
#include <fstream>
using namespace std ;
ifstream f ("sum.in") ;
ofstream g ("sum.out") ;
int main ( )
{
int n ; f >> n ;
while ( n -- )
{
int x ; f >> x ;
bool viz [ 2 * x + 5 ] = { false } ;
long long sum = 2 * x * ( x - 1 ) ;
viz [ x ] = true ; viz [ 2 * x ] = true ;
for ( int i = 2 ; i * i < x ; ++ i )
{
if ( !( x % i ) )
{
if ( !viz [ i ] )
for ( int k = i ; k < 2*x ; k += i )
if ( !viz [ k ] ) { viz [ k ] = true ; sum -= k ; }
if ( !viz [ x / i ] )
for ( int k = x/i ; k < 2*x ; k += x/i )
if ( !viz [ k ] ) { viz [ k ] = true ; sum -= k ; }
}
}
g << sum << "\n" ;
}
return 0 ;
}