Se consideră trei numere naturale n, a şi b (a<=b<=n). Să se creeze un program care permite afişarea factorilor primi ce aparţin intervalului (a, b) şi a puterilor la care aceştia apar în descompunerea lui n. Exemplu: pentru n=36, a= 1, b=10 se va afişa:
2 exponent 2
3 exponent 2
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int a,b,n,f, gasit=0,p=0;
cin >> n >> a >> b;
f=2;
while(n%f==0)
{
n=n/f;
p++;
}
if(p>0)
{
if (f>a && f<b)
{
gasit=1;
cout<<f<<" exponent "<<p<<"\n";
}
}
f=3;
while(n>1)
{
p=0;
while(n%f==0)
{
n=n/f;
p++;
}
if(p>0)
{
if (f>a && f<b)
{
gasit=1;
cout<<f<<" exponent "<<p<<"\n";
}
}
f=f+2;
}
if (gasit==0) cout << "nu exista";
return 0;
}
Explicație:
am adăugat cazui "nu exista" când în intervalul (a;b) nu exista factori primi de la descompunerea lui n în factori primi...