Cod sursa(job #1296528)
Utilizator | Data | 21 decembrie 2014 12:01:25 | |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 1.4 kb |
#include<fstream>
#include<math.h>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
short int t,nrd,i,x;
int j,k;
long long int a,s;
bool prime[100000];
int main(){
fin>>t;
prime[1]=1;
for(j=2;j<=100000;j++)
for(k=2;k<=100000/j;k++) prime[j*k]=1;
for(i=0;i<t;i++){
fin>>a;
s=0;
x=0;
nrd=1;
for(j=2;j<=a;j++) if(prime[j]==0) {
x=0;
while(a%j==0){
x++;
a=a/j;
s=s+j;
}
nrd=nrd*(x+1);
}
fout<<s<<" "<<nrd<<"\n";
}
}