Programa de numero primo en C++ con funciones

#include "iostream.h"

using namespace std;

bool primo(int);      // declaracion de funcion primo

int main(){
    int  x;
   cout<<"Ingrese # y le dire si es primo o no: ";
   cin>>x;
  
  if(primo(x))         /// si retorna true es primo
       cout<<"\n "<<x<< " es primo!"<<endl;
  else
      cout<<"\n"<<x<<" no es primo"<<endl;

   system("pause");
   return 0;
}

// definicion de la funcion que dice si es primo o no

bool primo(int x){
    if(x==1||x==2)
        return true;
   
    for(int i=2;i<x/2;i++){
          if(x%i==0)
              return false;
    }

  
   return true;
}

Comentarios

  1. En el ciclo para for(int i=2;i<x/2;i++)
    ¿por qué el límite superior es x/2?

    ResponderEliminar
    Respuestas
    1. Esto se debe a que no hay necesidad de continuar buscando divisores mas alla de la mitad del numero a probar. Hay una regla sobre ello en matemtica

      Eliminar
  2. En el ciclo para for(int i=2;i<x/2;i++)
    ¿por qué el límite superior es x/2?

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Prueba de Chi cuadrada para independencia y bondad de ajuste| Chi square Test in R

PYTHON, SERIE ARMÓNICA Y SERIE P