Cod sursa(job #2302176)

Utilizator cc4infinityCojocaru Catalin cc4infinity Data 13 decembrie 2018 21:45:07
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>

using namespace std;

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

int t,i,j,n,m,prim[100000];
bool ciur[1000001];

int main()
{
    for (i=3;i<=1000;i+=2)
        for (j=i*i;j<=1000000;j+=i)
        {
            ciur[j]=1;
        }
    prim[1]=2;
    int poz=1;
    for (i=3;i<=1000000;i+=2)
        if (!ciur[i])
        {
            poz++;
            prim[poz]=i;
        }
    fin>>t;
    int x;
    for (i=1;i<=t;i++)
    {
        fin>>x;
        int n=1,s=1,d=1,p=0,j=1;
        while (j<=poz && x>1)
        {
            p=0; n=1;
            while (x%prim[j]==0)
            {
                x/=prim[j];
                p++;
                n=n*prim[j]%9973;
            }
            d*=p+1;
            s*=(n*prim[j]-1)/(prim[j]-1)%9973;
            j++;
        }
        fout<<d<<" "<<s<<"\n";
    }
    return 0;
}