Cod sursa(job #2952449)

Utilizator SamurayxJackDiaconescu Octavian SamurayxJack Data 9 decembrie 2022 11:24:30
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

#define MAX 100000

int t;
long long int n;
bool prime[MAX+1];

ifstream fin("ssnd.in");
ofstream fout("ssnd.out");

void ciur(int n){
for(int i=2;i<=n;i++) prime[i]=true;
for(int i=2;i*i<=n;i++)
    if(prime[i]) for(int j=i*i;j<=n;j+=i) prime[j]=false;
}

void nrdivs(long long int n){
int d=2,cnt=1;
long long int s=1;
while(n>1){
int p=0;
while(n%d==0){p++;n/=d;}
cnt*=(p+1);
s*=(pow(d,p+1)-1)/(d-1);
d++;
if(d*d>=n) d=n;
}
fout<<cnt<<" "<<s%9973<<'\n';
}


void Read(){
fin>>t;
ciur(MAX);
while(t--){fin>>n; if(!prime[n])nrdivs(n);else fout<<2<<" "<<n;}
}

int main()
{ Read();
    return 0;
}