Cod sursa(job #2138246)

Utilizator mihaigrozaGroza Mihai mihaigroza Data 21 februarie 2018 14:47:08
Problema Suma si numarul divizorilor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long i,j,s,divx,n,p,ii,t,p1,h,aux,q;
int a[1000001];
bool v[10000000];
int main()
{
    q=0;
    for(i=2; i<=1000000; i++)
    {
        if(v[i]==0)
        {
            for(j=i*i; j<=1000000; j=j+i)
            {
                v[j]=1;
            }
            q++;
            a[q]=i;
        }
    }
    f>>t;
    for(ii=1; ii<=t; ii++)
    {
        divx=1;
        s=1;
        f>>n;
        i=2;
        q=1;
        while(i*i<=n)
        {
            aux=1;
            p=0;
            while(n%i==0)
            {
                p++;
                aux=aux*i;
                n=n/i;
            }
            if(p)
            {
            aux=aux*i;
            p++;
            divx=divx*p;
            s=(s*((aux-1)/(i-1)))%9973;
            }
            q++;
            i=a[q];
        }
        if(n!=1)
        {
            divx=divx*2;
            p=((n*n)-1)/(n-1);
            s=(s*p)%9973;
        }
        g<<divx<<" "<<s%9973<<endl;
    }
}