Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
N0vato

Números primos

Recommended Posts

Olá gente, estava tentando fazer um programa simples aqui para dizer quais são os números primos dentre os que eu digito e (como quase sempre :huh:) aconteceu um problema com a função pow da biblioteca de Matemática, é que eu vi que não é necessário testar todos os números do 1 até o x para saber se o número x é primo, basta destar do 1 até a raiz quadrada de x, por isso eu escrevi:

#include<iostream>
#include<cmath>
using namespace std;

bool primo2(int num, int number);
bool primo(int i, int number);

int main()
{
int number;
int num;
number = 1;
num = 1;

for( ; ; )
{
cout << "Digite um inteiro: ";
cin >> number;
if(number == 0)
{
break;
}

num = static_cast< int >(pow(number, 1/2));

cout << "1 se o numero for primo, 0 se nao for: " << primo2(num, number) << "\n" << endl;
}

system("PAUSE");
return 0;


}

bool primo2(int num, int number)
{
bool resp;

for(int i = 1 ; i <= num ;i++)
{
resp = primo(i, number);
}

return resp;
}

bool primo(int i, int number)
{
if(number % i == 0)
{
return false;
}

return true;
}

Error 1 error C2668: 'pow' : ambiguous call to overloaded function

Eu coloquei static_cast<>() para converter um possível número double em int, pelo menos foi nisso que eu pensei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poxa, deu exatamente o mesmo erro. Ainda não me liguei exatamente qual é o erro, o que eu entendi é que está acontecendo tipo um conflito de tipos, int e double ou float, mas ainda não entendi por quê.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nem sei se é locura minha mas...


bool primo2(int num, int number)
{
bool resposta

for(int i = 1 ; i <= num ;i++)
{
resposta= primo(i, number);
}

return resposta
}

Não deveria haver um ponto e vírgula ( ; ) após "bool resposta" e também após o "return resposta" ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Engraçado cuccate, infelizmente o erro não é esse :( , devo ter copiado o código errado mas juro que salvei o programa aqui com os ; logo após "bool resposta" e "return resposta". Brigadão pela força também Clark. mas o erro ainda não foi esse :( .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×