Pagini recente » Cod sursa (job #2311690) | Cod sursa (job #2622722) | Cod sursa (job #926516) | Cod sursa (job #2754011) | Cod sursa (job #787365)
Cod sursa(job #787365)
#include <fstream>
#include <vector>
#define RADN 1000001
#define NRM 9973
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int t,y,S,p,cnt;
long long n,x;
bool ciur[RADN+5];
vector<int> prime;
int main()
{
int i,j,k;
prime.push_back(2);
for(i=3;i<=RADN;i+=2){
if(!ciur[i]){
prime.push_back(i);
for(j=i;j<=RADN;j+=2*i)
ciur[j]=1;}}
f>>t;
for(j=1;j<=t;j++){
f>>n;
S=p=1;
for(i=0;i<prime.size()&&prime[i]*prime[i]<=n;i++){
if(!(n%prime[i])){
x=y=prime[i];
cnt=1;
while(!(n%y)){
n/=y;
x*=y;
cnt++;}
p*=cnt;
x=(x-1)/(y-1);
S=(S*x)%NRM;}}
if(n>1){
p*=2;
S=(S*(n+1))%NRM;}
g<<p<<' '<<S<<'\n';}
f.close();
g.close();
return 0;
}