Escriba un programa que lea un número entero n y muestre todos sus factores más pequeños:
¡Este código no solo tarda más de 1 segundo en ejecutarse, sino que también entra en un bucle infinito después de encontrar todos los números primos! Tome la entrada 120 como ejemplo. Cuando a=5 y n=5, ingrese if(an==0), ejecute a=a/n, luego n=1 y luego n=2; Volviendo a while(a!=0), el ciclo continúa porque a=1. En el futuro, 1 no será divisible por ningún número mayor que 1, por lo que n siempre aumenta en 1, mientras que a=1 permanece sin cambios. Esto se convierte en un bucle sin fin. Se puede cambiar así: int?main(void){
int?a;
cingt;gt;a;
int?n=2 ;
int?n=2;
cingt;gt;a; p>
//mientras(a!=0){
mientras (a!=1){
if(an==0){
coutlt;lt;nlt;lt;endl;
a=a/ n;
//n=1;
}
//n;
else?n;
}
retorno?0;
}