Buen dia, mi duda es la siguiente: me gustaria saber como puedo determinar si un numero es primo. En mi programa se guardan los valores en un arreglo, y posteriormente debo sumar los numeros primos contenidos en el mismo.
Muchas gracias!
#include <stdio.h>
int main (){
int a=0, b=0, i=0, su3=0, divisor=0, contador=0;
printf ("dime el tamano de los vectores");
scanf ("%d",&b);
a=b-1;
int v1[a];
while (i<=a){
printf("dame el valor del pirmer vector");
scanf ("%d",&v1[i]);
i++;
}
/*esta es la parte en la que tengo el error*/
do{
if(divisor!=v1[i]){
contador++;
divisor++;
}
if(contador<1){
su3=su3+v1[i];
}
i++;
}while (i<=a);
printf ("el resultado de la suma de numeros primos es = %d\n",su3);
getchar ();
getchar ();
return 0;
}
Elena!!
Es sencillo. Sólo tienes que
Es sencillo. Sólo tienes que recordar la definición de número primo: "Un número que sólo es divisible entre sí mismo y la unidad"
Una forma muy sencilla es, dado un número cualquiera N, dividirlo entre N-1. Si el residuo (lo obtienes con el operador %) es diferente de cero, dividir entre N-2. Si de nuevo resulta diferente de cero, dividir entre N-3 y así hasta llegar a 2 ( a 1 no, no tiene caso xD). Si llegas a 2 sin que el residuo sea cero, entonces el número es primo.
Obviamente, si en alguna división el residuo fue cero, el número NO es primo.