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");
// 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;
}
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;
}
En el ciclo para for(int i=2;i<x/2;i++)
ResponderEliminar¿por qué el límite superior es x/2?
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
EliminarEn el ciclo para for(int i=2;i<x/2;i++)
ResponderEliminar¿por qué el límite superior es x/2?
el numero 1 no es primo!!!!!!!
ResponderEliminar