Cod sursa(job #3314863)

Utilizator VladTheBosMorosanu Vlad VladTheBos Data 11 octombrie 2025 12:55:53
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb

#include <bits/stdc++.h>
using namespace std;
int n,i,j,t,summ,v[200005],a,ciur[200005],divv,nrdiv;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int main()
{
    fin>>t;
    a=0;
    for(i=1;i<=t;++i)
    {
        fin>>v[i];
        a=max(a,v[i]);
    }
    for(i=2;i*i<=a;++i)
    {
        for(j=2*i;j<=a;j=j+i)
        {
            ciur[j]=1;
        }
    }
    for(i=1;i<=t;++i)
    {
        divv=1;
        summ=1;
        
        for(j=2;j<=v[i];++j)
        {
           
            if(ciur[j]==0 && v[i]%j==0)
            {
                
                nrdiv=0;

                while(v[i]%j==0)
                {
                    nrdiv++;
                    v[i]=v[i]/j;
                }
                divv=divv*(nrdiv+1);
                summ=summ*(pow(j,nrdiv+1)-1)/(j-1);
                
            }
            
           
        }
        fout<<divv<<" "<<summ<<endl;
    }
    return 0;
}