Răspuns :
Răspuns:
#include <iostream>
using namespace std;
int x,s,f,p;
cout<<"x= "<<endl;
cin>>x;
s=0;
f=2;
while(x>1){
p=0;
while(x%f==0){
x=(int) (x/f);
p=p+1;}
s=s+p;
f++;
}
cout<<s<<endl;
Explicație:
Cu "cin>>" se citeste o variabila data de tine de la tasatura.
=> cu cin>>x; am citit variabila x
Am initializat variabilele s=0 si f=2.
Cat timp in C/C++ este while(conditie), in cazul nostru conditie=x>1
Am initializat variabila p cu 0.
Am intrat in alt cat timp(while) in care conditia de oprire este ca restul impartirii lui f la x sa fie 0(x modulo f =0, adica f impartit la x se imparte exact, nu da cu virgula).In acest while x-ul va fi mereu partea intreaga a impartirii lui f la x.Pt a retine partea intreaga vom face o conversie a acestei operatii de impartire.Int este un tip de date care retine numerele intregi(include numerele naturale)=> numere fara radicali, virgule, etc.
Cand am iesit din acest while, variabila s creste cu p(calculat mai inainte), iar cu "f++"(echivalent cu f=f+1) l-am crescut pe f cu 1.
Am iesit din while in momentul in care x este 1 sau mai mic decat 1 si afisam pe s.
Pt x=140 => se va afisa 4(programul numara de cate ori se imparte numarul x)
2. citeste x
s=0
f=2
┌ cat timp x>1 executa
│
│┌ pentru p<-0, x%f=0, 1 executa
││ x=[x/f]
│
└■
│ s=s+p
│ f=f+1
└■
scrie s
Sper ca e bine, bafta!