Cod sursa(job #2482576)

Utilizator Florinos123Gaina Florin Florinos123 Data 28 octombrie 2019 16:18:15
Problema Suma si numarul divizorilor Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>
#define mod 9973
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");

int sumofFactors(long n)
{
	long rezultat= 1;
	for (int i = 2; i * i <= n; i++)
	{


		int suma = 1;
		int termen = 1;
		while (n % i == 0)
            {

			n = n / i;

			termen=(1LL*termen*i)%mod;
			suma=(1LL*suma+termen)%mod;
		}

		rezultat=(1LL*rezultat*suma)%mod;
	}


	if (n >= 2)
		rezultat=(1LL*rezultat*(1 + n))%mod;

	return rezultat;
}
int nrdiv(long n)
{
    int d=2,p=0,x=1;
    while(n>1)
    {
        p=0;
        while(n%d==0)
        {
            p++;
            n=n/d;
        }
        if(p>0)
            x=x*(p+1);

        if(d==2)
            d++;
        else
            d=d+2;
        if(n>1 && d*d>n)
            d=n;
    }
    return x;

}
int main()
{
long n,i,x;
f>>n;
for(i=1;i<=n;i++)
{
    f>>x;
    g<<nrdiv(x)<<" "<<sumofFactors(x)<<endl;

}

    return 0;
}