Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Então eu resolvi aprender linguagem c por conta própria ,e estou seguindo uma apostilha,já cheguei em estruturas de repetição então resolvi fazer alguns exercícios complexos para pegar mais o raciocínio da linguagem,e cheguei nesse exercício:
Fazer um programa para receber um número do usuário e decompô-lo em fatores primos.
e já fiz o seguinte:
#include <stdio.h>
int main()
{
int vlr,cont,x,y;
cont=2;
printf ("digite um valor para ser decomposto em FATORES PRIMOS: ");
scanf ("%d",&vlr);
for (;;)
{
if (vlr%cont==0)
{
if (vlr/cont==1)
{
printf ("%d ""|"" %d\n",vlr,cont);
break;
}
printf ("%d ""|"" %d\n",vlr,cont);
vlr=(vlr/cont);
}
else
{
for (cont;;cont++)
{
for (y=0,x=1;x<=cont;++x)
if ((cont%x)==0) y+=x;
if ((cont+1)==y)
{
cont=y;
break;
}
}
}
}
return(0);
}
o erro e que se o numero decomposto tiver o ultimo fator primo 2 ou 3 roda tudo bem,mas se for 5 ele simplesmente não fecha o laço,nem finaliza o programa,eu queria saber onde esta o erro,para se futuramente eu tiver um erro parecido eu já saber resolver;Carregando comentários...