Cod sursa(job #2610440)

Utilizator bindeacristianBindea Cristian bindeacristian Data 4 mai 2020 21:16:32
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

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

const int MOD = 9973;

inline int putere(int x, int p) {
	int rez = 1;
	x %= MOD;

	for(; p; p >>= 1) {
		if(p & 1) {
			rez *= x;
			rez %= MOD;
		}

		x *= x;
		x %= MOD;
	}

	return rez;
}

void factori_primi(int n)
{
    int s=1,d,nrdiv=1,i=2;
    while(n>1)
    {
        if(n%i==0)
        {
            d=0;
            while(n%i==0)
            {
                d++;
                n=n/i;
            }

            s=s*(putere(i,d+1)-1)/(i-1);

            nrdiv=nrdiv*(d+1);
        }

        i++;
    }
    fout<<nrdiv<<" "<<s%9973<<endl;
}

int main()
{
    int n;
    fin>>n;

    while(fin>>n)
        factori_primi(n);

    return 0;
}