Pagini recente » Cod sursa (job #1596189) | Cod sursa (job #1784364) | Cod sursa (job #1586917) | Cod sursa (job #1142489) | Cod sursa (job #967065)
Cod sursa(job #967065)
#include <iostream>
#include <fstream>
#include <cmath>
#include <vector>
#include <bitset>
#include <queue>
#include <deque>
#include <list>
#include <ctime>
#include <string>
#include <algorithm>
using namespace std;
ifstream ff("ssnd.in");
ofstream gg("ssnd.out");
#define max 1000001
#define md 9973
bitset<max>pp;
vector<long long>qq;
void ciu(){
int i=2, l=(int)sqrt(max);
while(i<=l){
while(pp[i])i++;
for(int j=i*i;j<max;j+=i)pp[j]=1;
i++;
}
for(int i=2;i<max;i++)
if(!pp[i]) qq.push_back(i);
}
void dsc(long long n){
int d=1, d1, i=0, l=qq.size();
long long s=1, p;
while(n!=1 && i<l && qq[i]*qq[i]<=n){
if(n%qq[i]==0){
d1=0;
p=qq[i];
while(n%qq[i]==0){ n/=qq[i]; d1++; p*=qq[i]; }
d*=(d1+1);
s=s*((p-1)/(qq[i]-1))%md;
}
i++;
}
if(n!=1){
d*=2;
s=s*((n*n-1)/(n-1))%md;
}
gg << d << " " << s << "\n";
}
int main(){
int t;
long long n;
ciu();
ff >> t;
while(t--){
ff >> n;
dsc(n);
}
return 0;
}