Cod sursa(job #2515268)

Utilizator EdgeLordXDOvidiuPita EdgeLordXD Data 28 decembrie 2019 11:42:21
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#define N 1000006
#define ll long long
#define M 9973
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
ll p[N], v[N];
int main(){
    ll t,n,i,j,k=0,s,d,x;
    for(i=2; i<N; ++i){
        if(!v[i]){
            p[++k]=i;
            for(j=2*i; j<N; j+=i)
                v[j]=1;
        }
    }
    in>>t;
    while(t--){
        in>>n;
        j=s=d=1;
        while(p[j] && p[j]*p[j]<=n){
            k=1;
            i=p[j];
			x=n;
            while(x%p[j]==0){
                x/=p[j];
                ++k;
                i*=p[j];
            }
            d*=k;
            s=(s*((i-1)/(p[j]-1))%M)%M;
            ++j;
        }
        out<<d<<" "<<s<<"\n";
    }
    return 0;
}