Informática, perguntado por kingr46, 6 meses atrás

Faça um programa que exiba os primeiros 20 números primos.


theschatten: em qual linguagem?
kingr46: não esta explicando pode ser em qualquer uma

Soluções para a tarefa

Respondido por joaopedrolemos
0

#include <iostream>

using namespace std;

bool verifier (int x){

   int divisores=0;

   for (int i=1;i<=x;i++){

       if (x%i==0) divisores++;

   }

   bool primo;

   if (divisores==2)primo=true;

   else primo = false;

   return primo;

}

int main() {

  for (int a=0;a<72;a++){

      if (verifier(a)==true){

          cout << a << "\t";

      }

  }

  return 0;

}


joaopedrolemos: No caso, para melhorar o código, poderia substituir esse laço for por um while + variável contador que pare o laço de repetição quando chegar a 20 números.
Respondido por theschatten
0

Fiz o código em Python.

  • Versão sem recursão:

def ehPrimo(p):

"""Retorna True se p é primo, False caso contrario."""

for i in range(2, p):

if p%i == 0:

return False

return True

def nPrimos(n):

"""Imprime n primos."""

num = 2

contador = 0

while contador < 20:

if ehPrimo(num):

print(num)

contador+=1

num+=1

nPrimos(20)

  • Versão com recursão:

def proxPrimo(p):

"""Retorna o primeiro primo após p."""

for i in range(2, p):

if (p+1)%i == 0:

return proxPrimo(p+1)

return p+1

def nPrimos(n):

"""Imprime os n primeiros primos."""

num = 1

for contador in range(n):

num = proxPrimo(num)

print(num)

nPrimos(20)

Perguntas interessantes