• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

256mxr

Programa numeros primos!!!

7 mensagens neste tópico

Escreva uma função bool primo(int n) que retorna true se n é primo e false no caso contrário.

Sugestão: Para verificar se n é primo, basta dividir n pelos números de 2 a int(sqrt(n)). A função sqrt

retorna a raiz quadrada de um número.

#include <iostream>
#include <math.h>
using namespace std;

bool primo (int n)
{
     int i=2,num2,a; 
     double num1;
     a= int (sqrt(n));
     
     while(i<=a)
     {
           num1 = n/i;
           num2 = int (n/i);
           if(num1 == num2)
           {
                  return true; break;
           }
           i++;
     }
     return false;
}             
     
int main()
{
    cout << "Introduza num. inteiro: ";
    int n;
    cin >> n;
    
    if(primo (n)==0)
        cout << "Primo\n";
    else
        cout << "N Primo\n";
   
    
    system ("pause");
    return 0;
}

Esta foi a minha tentativa mas n ta a funcionar cm devia...

S dessem uma ajudasita agradecia...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

assim não dá. Basta verificar se o resto da divisão inteira é 0.

n%i

Se encontrares uma divisão que dé resto 0, então não é primo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#include <iostream>
#include <math.h>
using namespace std;

bool primo (int n)
{
     int i=2,a; 
     
     a= int (sqrt(n));
     
     while(i<=a)
     {
          if((n%i)==0)
           {
                  return true;
           }
           i++;
     }
     return false;
}             
     
int main()
{
    cout << "Introduza num. inteiro: ";
    int n;
    cin >> n;
    
    if(primo (n)==0)
        cout << "Primo\n";
    else
        cout << "N Primo\n";
   
    
    system ("pause");
    return 0;
}

ja corrigi e funcionou...

tava a comlicar o que afinal era facil

ele depois do return faz break automaticamente???

ou continua a fazer o ciclo??

obrigadao shumy e hipnoted

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

funciona ao contrario não?

Devia ser:

if((n%i)==0)
{
   return false; //falso, não é primo
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Depois do return não é executado mais nenhum código pois a função devolve um valor.

Já agora, edita os teus posts e identa o teu códigocom o GeSHi.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora