Cod sursa(job #3308982)

Utilizator _.diannaq._Bengescu Diana _.diannaq._ Data 30 august 2025 17:07:41
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-32 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <bits/stdc++.h>

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

const int NRMAX=10000;
bitset<NRMAX+5>is_prime;
void ciur(){
is_prime.set();
  is_prime[0]=is_prime[1]=0;
  for(int i=4;i<=NRMAX;i=i+2){
        is_prime[i]=0;
    
  }
  for(int i=3;i*i<=NRMAX;i=i+2){
    for(int j=i*i;j<=NRMAX;j=j+i){
      is_prime[j]=0;
    }
    
  }
  
}

int nrdiv(int n){
  int ans=1;
for(int i=2;i*i<=n;i++){
 if(is_prime[i]==1 && n%i==0){
   int ct=0;
   while(n%i==0){
   n=n/i;
     ct++;
     
   }
   ans=ans*(1+ct);
   
 }
  
}

  if(n>1){
    ans=ans*2;
  }
  return ans;
  
}


int sdiv(int n){
 int s=0;
  for(int i=1;i<=n/2;i++){
    if(n%i==0)
    s=s+i;
  }

  return s+n;

  
}
int main(){
  ciur ();
int n,a;
  fin>>n;
  for(int i=1;i<=n;i++){
    fin>>a;
  fout<<nrdiv(a)<<" "<<sdiv(a)<<endl;
  }




}