Explicație pas cu pas:
Se citește un număr n. Să se descompună în factori primi. Exemple: dacă n = 12 vom afișa 12 = * 2^2 * 3^1; dacă n = 504 vom afișa 504 = * 2^3 * 3^2 * 7^1. Notă de rezolvare: nu este nevoie să testăm dacă un divizor este prim, putem testa toți divizorii. Numai cei primi vor ajunge să dividă n.
Se citesc numerele n și k, k număr prim, k ≤ n. Considerăm numărul n! = 1∙2∙3∙...∙n. Să se afișeze puterea lui k din descompunerea în factori primi a lui n!.
Puterea lui k în n!
#include <stdio.h>
int main() {
int n, k, p, f, fc;
scanf( "%d%d", &n, &k );
p = 0;
f = 2;
while ( f <= n ) {
fc = f;
while ( fc % k == 0 ) {
p = p + 1;
fc = fc / k;
}
f = f + 1;
}
printf( "%d", p );
return