se da un numar natural n, n<=100 si o cifra k din multimea {2;3;5;7}. Se cere sa se afișeze exponentul lui k in descompunerea in factori primi a produsului 1*2*3...*n.
Răspunsuri la întrebare
Salut :)
Ce e scris cu // sunt comentarii,le poti sterge daca ti-ai dat seama cum merge treaba.
CODUL ↓
#include <iostream>
using namespace std;
int main()
{
int n,k,p=1,exp=0,i;
cin>>n; // cititm n,ex:10
cin>>k; // cititm k,din multimea {2,3,5,7}
if(k==2 || k==3 || k==5 || k==7) // verificam daca k∈{2,3,5,7}
{
for(i=1; i<=n; i++)
p=p*i; // calculam n! , adica 1*2*...*n = 1*2*3*4*5*6*7*8*9*10
while(p%k==0) // "atat timp cat p se imparte la k"
{
exp++;//am gasit un exponent
p=p/k;//cautam inca unul
}
cout<<"Exponentul lui "<<k<<" este "<<exp;
}
}
Afisare pt. n=10 si k=2 : " Exponentul lui 2 este 8 "
Verificare : 1*2*3*4*5*6*7*8*9*10 = 1*2*3*2²*5*2*3*7*2³*9*2*5=2⁸*....