Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sakatsu

Nºs primos

Recommended Posts

boas tenho um programa que preciso verificar se 3 nºs inteiros sao ou nao primos, eu tenho o seguinte codigo, falta a parte de ver se é primo ou nao, alguem pode ajudar?

int main()

{

int f, num;

 

for(f=1;f<=3;f++)

{

cout<<"\nIntroduza o<<f<<. numero inteiro: ";

cin>>num;

}

 

 

system("PAUSE");

return 0;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for "como verifico se um número é primo" , basta fazer uma pesquisa no fórum. Esse é um exercício bem comum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Número primo: Número divisível por 1 e por ele mesmo.

 

10 é divisível por 1, 2, 5 e 10. Não é primo.

17 é divisível SOMENTE por 1 e 17, logo é um número primo.

 

Você pode utilizar um if() para fazer a comparação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdio.h>

#define MAX_BUFFER      16192 // Maior numero primo 78367, se o programa ficar muito lento diminua este numero

void calcprime (unsigned long long int* vet, int max)
{
   unsigned long long int p = 1, r;
   int ip, z, i = 0;

   vet[i++] = 2;

   while(i < max)
   {
       p += 2;
       ip = 1;
       z = i-1;

       while(z >= 0)
       {
           r = p % vet[z];
           ip = ip && (r != 0);
           z--;
       }
       if(ip)
       {
           vet[i++] = p;
       }
   }
}

int isprime (unsigned long long int* vet, int max, unsigned long long int n)
{
   int i = 0;

   while(i < max)
   {
       if(n == vet[i])
           return 1;
       else if(vet[i] > n)
           break;
       i++;
   }
   return 0;
}

int main()
{
   unsigned long long int vet[MAX_BUFFER], sc;

   printf("Calculando numeros primos de 2 a 7867.\nAguarde...\n");
   calcprime(vet, MAX_BUFFER);
   printf("Concluido.\n");

   printf("Verifique se um numero é primo, zero para sair.\n");
   do
   {
       printf("Digite-o aqui: ");
       scanf("%llu", &sc);

       if(isprime(vet, MAX_BUFFER, sc))
           printf("%llu é primo.\n", sc);
       else
           printf("%llu não é primo.\n", sc);
   }
   while(sc != 0);
   return 0;
}

 

Se este código for inútil ou não resolver seu problema, me avise pois tenho outras versões.

Obs.: É quase certo que esse programa seja "lento", pois realiza uma grande quantidade de operações, como todo software desta categoria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.