Unamonos los programadores de taringa y compartamos nuestros codigos, ya sea java, C, C++, php, jsp, html, css, python.... etc etc etc.. Enterate tambien de las innovaciones en el software y nuevas distribuciones de Microsoft, Linux y MacOS

Ver más
  • 1,702 Miembros
  • 560 Temas
  • 308 Seguidores
  • 0

[Consulta]Programa que dice si un numero es primo o no

Hola,
La otra vez tenia que hacer un programa que diha si un numero es primo o no, para eso deberiamos tendriamos que hacer esto:
Dividir al divisor y si el resto es 0 mostrar que NO es primo en caso contrario que SI es. Y ir sumando al dividendo 1 mientras que sea.
Este es mi codigo

#include <iostream>

using namespace std;

int main()
{
    int r; //El numero el cual el usuario introduzira su valor y sera testeado para saber si es primo o no
    int u;
    bool ES; //Sera usada para saber si es primo o no
    cin >> r;
    for (int z = 1; z < r; z++) //Se crea 'z' con valor uno, al evaluarse con 'x' hara 'z++' por lo cual empezara dividiendo entre 2
    {
        u = r % z;
        if (u == 0) {ES = false; break;} else ES = true;
    }
    if (ES == true) cout << "Este numero es primo" << endl;
    else cout << "Este numero no es primo" << endl;
}


P.D. Ya probe con este codigo pero sigue sin dar resultado

#include <iostream>

using namespace std;

int main()
{
    int r; //El numero el cual el usuario introduzira su valor y sera testeado para saber si es primo o no
    int u;
    bool ES; //Sera usada para saber si es primo o no
    cin >> r;
    for (int z = 1; z < --r; z++) //Se crea 'z' con valor uno, al evaluarse con 'x' hara 'z++' por lo cual empezara dividiendo entre 2
    {
        u = r % z;
        if (u == 0) {ES = false; break;} else ES = true;
        r += 1;
    }
    if (ES == true) cout << "Este numero es primo" << endl;
    else cout << "Este numero no es primo" << endl;
}

Ninguno de los dos funciona, siempre me sigue diciendo que no son primos, en pocas palabras pongo 5 y me dice que no es primo.
Gracias por su ayuda
  • 0
  • 0Calificación
  • 0Seguidores
  • 164Visitas
  • 0Favoritos

9 respuestas

@cxs00 dijo Hace más de 3 meses:

#include<stdio.h>

int is_prime(int);

int main(void)
{
        int n;
        
        printf("Ingrese un numero:");
        scanf("%d",&n);

        if(is_prime(n))
                printf("%d es primon",n);
        else
                printf("%d no es primon",n);

        return 0;
}

int is_prime(int n)
{
        int i;

        for(i=2;i<n;i++)
                if(!(n%i))
                        return 0;

        return 1;
}

@hinafu dijo Hace más de 3 meses:

Yo hago así: (C++)

<?
#include <iostream>
using namespace std;

bool esPrimo(long long int num) {
  if(
num==2) return true;
  if(
num==or num%2==0) return false;
  for(
int i=3;i*i<=num;i+=2) if(num%i==0) return false;
  return 
true;
}

int main() {
  
long long int num;
  
cout << "Introduzca un número: ";
  
cin >> num;
  if(
esPrimo(num)) cout << "El número " << num << " es primo.n";
  else 
cout << "El número " << num << " no es primo.n";
  return 
0;
}

?>


Tal vez no compile porque lo hice de frente en el comentario, pero la idea está

@cxs00 dijo Hace más de 3 meses:

Pero yo quiero saber porque no funciona el mio.


no lo quize revisar porque esta mui desordenado, ordena tu codigo y usa nombres de variables coherentes >,<

@cxs00 dijo Hace más de 3 meses:

cuando digo ordenado me refiero a codigo indentado, con los bloques separados y claros
cuando digo variables coherentes me refiero a nombres cortos y explicativos.

los errores eran i deveria comensar de 2 porque los incrementos son alfinal del bloque dentro del for, tenias un ; demas en el for


tu codigo correjido, trate de cambiarlo lo menos posible aunque se podria mejorar... deverias leer algu ntexto sobre convencion de nombres...

#include <iostream>

using namespace std;

int main(void)
{
    int n, resto; 
    bool es_primo;

    cin >> n;

    for (int i= 2;i<n;i++)
    {
        resto = n % i;

        if (resto == 0) {
            es_primo = false; 
            break;
        } else 
            es_primo = true;
    }

    if (es_primo)
        cout << "Este numero es primo" << endl;
    else
        cout << "Este numero no es primo" << endl;

    return 0;
}


PD: con que estas aprendiendo? (que tutorial,libro,loquesea)?

Tienes que ser miembro para responder en este tema