Cod sursa(job #3224695)
| Utilizator | Data | 15 aprilie 2024 20:22:52 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.87 kb |
#include <bits/stdc++.h>
using namespace std;
int main(){
int n, i, e, div;
long long x, d, sum, prod;
ifstream fin( "ssnd.in" );
ofstream fout( "ssnd.out" );
fin >> n;
for( i = 0; i < n; i++ ){
fin >> x;
d = 2;
div = 1;
sum = 1;
while( d * d <= x ){
if( x % d == 0 ){
e = 0;
prod = d;
while( x % d == 0 ){
prod *= d;
x /= d;
e++;
}
div *= ( e + 1 );
sum = ( sum * ( prod - 1 ) / ( d - 1 ) ) % 9973;
}
d++;
}
if( x > 1 ){
div *= 2;
sum = ( sum * ( x * x - 1 ) / ( x - 1 ) ) % 9973;
}
fout << div << ' ' << sum << '\n';
}
return 0;
}
