Faça um programa que exiba os primeiros 20 números primos.
Soluções para a tarefa
#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;
}
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)