Números Primos

Fer
25 de Agosto del 2003
Hola!!! Necesito entregar un programa que me indique si un número es primo y solamente hasta 2000.

Si me pueden ayudar GRACIAS!!!

rajuma
25 de Agosto del 2003
Un número es primo sólo si es divisible unicamente por 1 y sí mismo. Es de cajón que el 1 es primo, así como el 2 y el 3.
La opción más sencilla y simple es preguntar si el número en cuestión dividido por cualquiera menor(sin contar el 1). da como resto 0. Es decir si su módulo es 0. En este caso no sería un primo ya que tendría un divisor como mínimo.
No es óptimo, se pueden hacer bucles más optimizados, pero sería más dificil de explicar y comprender. El bucle vendría a ser como sigue:
void main()
{
int numero;
int i;
int j;
int encontrado=0;
printf("El nº 1 es primo \n");
printf("El nº 2 es primo \n");
printf("El nº 3 es primo \n");
for (i=4 ; i<2001; i++)
{
for(j=2; j < i ; j++)
{
if( i % j == 0)
{
encontrado=1
}
}
if(encontrado==0)
{
printf("El nº %d es primo \n", i);
}
else
{
encontrado=0;
}
}
}

Este bucle te servirá o al menos te orientará hay optimizaciones mucho mejores pero esto te servirá para salir del paso y cumple los requisitos.
Intenta hacer trazas para comprenderlo, no te limites al copy, paste..............






ana
25 de Agosto del 2003
Hola Fer, ahi te dejo una solucion, espero que te sirva, es muy sencillita, sino entiendes algo me lo preguntas.
void main()
{
int j,sw,num;
printf("Introduce un numero: " " ");
scanf("%d", &num);


sw=1;
for(j=2;j<num;j++)
{
if(num%j==0)
{
sw=0;
break;

}
}

if(sw==1)

printf("El numero %d es primo n", num);
else
printf("El numero %d no es primo n", num);


getch();
}

un saludo