Pagini recente » Cod sursa (job #325499) | Cod sursa (job #1914646) | Cod sursa (job #1275682) | Cod sursa (job #549368) | Cod sursa (job #3259031)
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int ridicare(int a, int n, int mod) {
int rasp = 1;
while(n > 0) {
if(n % 2 == 1)
rasp = (1LL * rasp * a) % mod;
a = (1LL * a * a) % mod;
n /= 2;
}
return rasp;
}
int number = 9973;
int main() {
int t, x, nr_div, sum_div, d, p, num;
f>>t;
for(int i = 1; i<=t; i++){
f>>x;
nr_div = 1;
sum_div = 1;
d = 2;
while(x>1){
if(x%d==0){
p = 0;
num = 0;
while(x%d==0){
p++;
x /= d;
}
nr_div *= (p+1);
for(int j = 0; j<=p; j++){
num += ridicare(d,j, number);
}
sum_div*=num;
}
d++;
if(x>1 && d*d>x){
d=x;
}
}
g<<nr_div<<" "<<sum_div%number<<"\n";
}
return 0;
}