Presupunem ca sirul de numere naturale nu contine elemente de 0, pentru c altfel pentru un element A ai putea face sirul infinit (0+1)*(0+1)*..*(0+1)*A
Atunci, sirul numerelor cel mai lung posibil sunt factorii primi luati fiecare inmultiti in parte.
de exemplu pentru 24=2^3*3=2*2*2*3
#include <iostream>
#include <fstream>
using namespace std;
int suma_exponenti_factori_primi(int x){
int i,exp,sum_exp=0,aux=x;
for(i=2;i<=aux/2;i++){
//daca i este divizor al lui n
if(x%i==0){
//initializam exponentul
exp=0;
while(x%i==0){
exp++;
x=x/i;
}
sum_exp=sum_exp+exp;
}
}
return sum_exp;
}
int main(){
ifstream fig("greu.in");
ofstream fog("grea.out");
int n,x,i;
fig>>n;
cout<<n<<endl;
for(i=0;i<n;i++){
fig>>x;
fog<<suma_exponenti_factori_primi(x)<<endl;
}
return 0;
}