Tng una dudilla y no consigo resolverla, tengo el siguiente codigo:
#include<stdio.h>
#include<math.h>
void main()
{
int num, resto; double raiz;
printf("Introduce un numero:\n");
scanf("%d",&num);
if (num%2==0) printf("El numero %d no es primo.\n", num);
raiz=sqrt(num);
while (raiz>1)
{
resto=num%(int)raiz;
if (resto==0)
{
printf("El numero %d no es primo.",num); break;
}
else (int)raiz--;
}
printf("El numero %d es primo.",num);
}
Lo q se pretende es obtener si un numero es primo o no, y mi duda se presenta cuando en, resto=num%(int)raiz; el valor de raiz es 1.xxxx ya que al utilizar el modificador cast, solo toma la parte entera, por lo q al realizar la division por 1, el resto siempre será cero, y entrará en el if.
¿Alguien me puede decir cómo puedo salvar esto?
Pd.:Si no es el foro adecuado que sea movido, no sabia donde ubicarlo.