Manuel
-
22 set 2013 às 05:31
aaafelix
Posts1272Data de inscriçãosábado 10 de novembro de 2012StatusContribuinteÚltima visita27 de outubro de 2023
-
22 mar 2014 às 22:03
Boas os programas apresentados no link:https://br.ccm.net/faq/10300-verificar-se-um-numero-inteiro-e-um-numero-primo-em-c dão-me errados.
Uma vez pois os numeros ímpares considera-os todos como primos!!
Só fiz uma pequena alteração ao programa tirei a raiz(sqrt): pois dava-me este erro: (.text+0x6c): undefined reference to 'sqrt' collect2: ld returned 1 exit status. E coloquei em forma de potencia c/ pow.
o programa:
/**************************\
número_primo3.c *
\**************************/
/* algoritmo: exclua os números pares e
teste todos os divisores até a raiz quadrada */
#include <stdio.h>
#include <math.h>
int main (void)
{
int i, nb, contar, teste,limite;
teste = contar = 0;
printf ("Entre um número inteiro : ");
if (scanf ("%d", &nb) != 1)
return -1;
limite = pow(nb,1/2) + 1;
if (nb % 2 == 0)
teste = 1;
else{
for (i = 3 ; i < limite; i+=2, contar++)
if (nb % i == 0)
teste = 1;
}
if (!teste)
printf ("%d número primo, número iterações = %d\n", nb, contar);
else
printf ("%d não é um número primo, número iterações = %d\n",nb, contar);
return 0;
}