Cod sursa(job #1007803)

Utilizator NacuCristianCristian Nacu NacuCristian Data 9 octombrie 2013 19:23:13
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.2 kb
#include <iostream>
#include <fstream>
#include <string.h>

using namespace std;

int t;
long long int n,ps=1,pd=1;
const int mod=9973;
bool a[1000001];
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");

void citire()
{
    fin>>n;
}



void ciur()
{
    for(int i=2; i<=1000001; i++)
    {
        if(a[i]==0)
        {
            for(int j=i*2; j<=1000001; j+=i)
            {
                a[j]=1;
            }
        }
    }
}


void div()
{

    ps=1,pd=1;
    for(int i=2; i*i<n; i++)
    {
        if(a[i]==0)
        {
            if(n%i==0)
            {
                int exp=1;
                ps=i,pd=1;

                while(n%i==0)
                {
                    exp++;
                    ps*=i;
                    n/=i;
                }
                pd*=exp;
                ps=((ps-1)/(i-1))%mod;


            }
        }



    }
        if(n>1)
    {
        ps*=((n*n-1)/(n-1))%mod;
        pd*=2;
        n=0;

    }

}



   int main()
{

    ciur();

    fin>>t;
    for(int i=0; i<t; i++)
    {
        citire();
        div();
        fout<<pd<<" "<<ps<<"\n";


    }



    return 0;
}