Cod sursa(job #3314906)

Utilizator WladdVlad Mitea Wladd Data 11 octombrie 2025 13:32:49
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.12 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long int v[2000001],v2[2000001];
void ciur(){
    int k=1;
    int i,j;
    for(i=2; i*i<=1000001; i++){
        if(v[i]==0){
        for(j=i; j*i<=1000001; j++){
            v[i*j]=1;
      }  }
    }
   // i=1;
  //  for(k=1; k<=1000001; k++){
     //   if(v[k]==0){
    //        v2[i]=k;
    //        i++;
    //    }
   // }
 
}
int main()
{
	int n;
	fin>>n;
	int i;
	int j;
	int nr,cnt;
	int nrdiv=1;
	int sum;
	int cnt2;
	int factor1,factor2;
	ciur();
	for(i=1; i<=n; i++){
	    fin>>nr;
	    j=2;
	    nrdiv=1;
	    sum=1;
	    if(v[nr]==0){
	        fout<<2<<" "<<nr+1<<endl;
	        continue;
	    }
	    for(j=2; j<=nr; j++){
	        cnt=0;
	        if(nr%j==0){
	            while(nr%j==0){
	                nr=nr/j;
	                cnt++;
	                cnt2=cnt;
	            }
	            cnt2=cnt;
	            cnt++;
	            nrdiv=nrdiv*cnt;
	            factor1=pow(j,cnt2+1)-1;
	        factor2=factor1/(j-1);
	        sum=sum*factor2;
	        }
	       
	    }
	  fout<<nrdiv<<" "<<sum<<endl;
	}

	return 0;
}