Cod sursa(job #2337615)

Utilizator Leonard123Mirt Leonard Leonard123 Data 6 februarie 2019 16:15:15
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include<bitset>
#include<iostream>
using namespace std;

//ifstream cin("ssnd.in");
//ofstream cout("ssnd.out");
#define mod 9973
#define m 1000000
bitset <m> bitsett;

void ciur(){
    for(int i=2; i*i<=m; i++){
        if(!bitsett[i])
            for(int j=i*2; j<=m; j+=i)
                bitsett[j]=1;
    }
}

int main()
{
    long long suma=1, nr=1, div=1;
    int t, put=0;
    long long n;
    cin>>t;
    while(t){
        cin>>n;
        for(int i=2; i*i<=n; i++){
            if(!bitsett[i]){

                while(n%i==0){
                    n/=i;
                    div=(div*i)%mod;
                    put++;
                }
            suma=suma*((div*i)-1)/(i-1)%mod;
            nr*=put+1;
            div=1;
            put=0;
            }
        }
        if(n>1){
            nr*=2;
            suma=(suma*(n+1))%mod;
        }
        cout<<nr<<' '<<suma<<'\n';
        nr=1;
        suma=1;
        t--;
    }
    ciur();
    return 0;
}