numeros primos con arreglos

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!! Beso



Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

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.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.