Cod sursa(job #3301537)

Utilizator Zeno1789Zeno Ciuca Zeno1789 Data 27 iunie 2025 16:02:47
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

bool ciur[1000000];

void ciur_functie() {
    ciur[0]=ciur[1]=1;
    for (int i=2; i*i<=1000000; i++) {
        if (ciur[i]==0) {
            for (int d=i*i; d<=1000000; d+=i) {
                ciur[d]=1;
            }
        }
    }
}

int main() {
    int t,n;
    cin>>t;
    ciur_functie();
    vector<int> v;
    for (int i=0; i<=1000000; i++) {
        if (ciur[i]==0) v.push_back(i);
    }
    for (int i=1; i<=t; i++) {
        cin>>n;
        int poz=0,sum1=1,sum2=1,cnt=0;
        while (n>1) {
            if (n%v[poz]==0) {
                cnt++;
                n=n/v[poz];
            }
            else {
                if (cnt>0) {
                    sum1=sum1*(cnt+1);
                    sum2=sum2*(pow(v[poz],cnt+1)-1)/(v[poz]-1);
                }
                poz++;
                cnt=0;
            }
        }
        if (cnt>0) {
            sum1=sum1*(cnt+1);
            sum2=sum2*(pow(v[poz],cnt+1)-1)/(v[poz]-1);
        }
        cout<<sum1<<' '<<sum2%9973<<'\n';
    }
}