Cod sursa(job #3227344)

Utilizator tudorororTudor-Mihail Danila tudororor Data 29 aprilie 2024 19:49:56
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("ssnd.in");
ofstream g("ssnd.out");

int putere(int x, int y)
{
    int p = 1;
    while(y)
    {
        if(y % 2)
            p *= x;
        x *= x;
        y /= 2;
    }
    return p;
}

void ssnd(int n)
{
    int d = 2, nrdiv = 1, sumdiv = 1;
    while(n > 1)
    {
        int p = 0;
        while(n % d == 0)
        {
            p++;
            n /= d;
        }
        if(p)
        {
            int sum = 0;
            nrdiv *= (p + 1);
            for(int i = 0; i <= p; i++)
                sum += (putere(d, i))%9973;
            sumdiv *= sum;
        }
        d++;
        if(d * d > n)
            d = n;
    }
    g << nrdiv << ' ' << sumdiv << '\n';
}

int main()
{
    int t;
    f >> t;
    while(t)
    {
        int n;
        f >> n;
        ssnd(n);
        t--;
    }
    return 0;
}