Cod sursa(job #2417963)

Utilizator davidisimo040Asandoaiei David davidisimo040 Data 2 mai 2019 16:19:20
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.24 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f ("ssnd.in");
ofstream g ("ssnd.out");
vector <long long>v;
long long n,i,j,s,t,x,p ;


int prime(long long x)
{
if(x==1) return 0;
if(x==2) return 1;
for(i=2;i<=sqrt(x);i++) if(x%i==0) return 0;
return 1;


}
int main()
{       long long cur_prod=1;
    f>>t;
    for(long long iter=1; iter<=t; iter++)
    {       p=1;s=1;

        f>>x;
        if(x==1) g<<1<<' '<<1<<endl;
        else if (prime(x)==1) g<<2<<' '<<x+1<<endl;
        else
        {

                    long long l = sqrt(x);
                for(i=2; i<=l && (x!=1); i++)
                {   cur_prod=1;
                                    long long nr=0;
                    while(x%i==0)
                    {
                        nr++;
                        x=x/i;
                        cur_prod*=i;cur_prod%=9973;
                    }

                    if(nr!=0)
                    {
                        p=p*(nr+1);p=p%9973;
                        cur_prod*=i;
                        cur_prod%=9973;
                        cur_prod--;
                        s*= (cur_prod/(i-1));
                        s=s%9973;
                    }

                }




           g<<p<<' '<<s<<endl;
        }

    }
    return 0;
}