Programación en lenguaje C para descomponer un número entero positivo en factores primos. Por ejemplo: ingrese 90, imprima 90 = 2*3*3*5
Declare una variable de tipo int n para recibir la entrada del teclado y limítela a un número positivo. A otra variable de tipo int i se le asigna un valor inicial de 2, y n se divide por i. Si es divisible, i se genera como factor primo y a n se le asigna un valor de n/i; i se incrementa en 1 y el nuevo valor de n se divide... y así sucesivamente hasta n==1. Al generar, imprima un signo * antes de n==1 para indicar "multiplicación". El código es el siguiente: #include?"stdio.h"
int?main(int?argc, char?*argv[]){
int?n, i;
printf("Input?n(int?ngt;0)...\nn=");
if(scanf("d",amp;n)!= 1?| |?nlt;1){//Ingreso y límite mayor que 0
printf("Input?error,?exit...\n");
return ?0;
}
printf("\nd?=?",n);
for(i=2;ngt;1;){ //Descompone el factor de materia, i comienza desde 2
if(ni==0){//Si se puede dividir por i, genera el factor i
printf("d ", i);
if((n/=i)gt; 1)//Emite un * antes de alcanzar el último factor
printf("*");
}
else//Si no es divisible por i, i aumenta en 1
i
}
printf("\n");
return?0;
}
El ejemplo en ejecución es el siguiente: