Buscar

Faça um programa que mostre todos os primos entre 1 e N sendo N um número inteiro fornecido pelo usuário.

Só consegui dizer se n é primo, mas não consegui implementar para o intervalo. Por enquanto só aprendi if/else e whilen = int(input("Digite um número: "))x = 1cont = 0while x

💡 4 Respostas

User badge image

Paula Fernandes

para implementar nesse intervalo vc pode usar um laço for ao invés de while (for i in range(1, n+1) em python). Nesse caso, em cada iteração i aumenta 1, até que chegue a N (o laço não vai ser executado pra N+1), basta você verificar dentro de cada iteração se o valor i é primo ou não e armazenar/imprimir caso seja
1
Dislike0
User badge image

Anderson Bento

def main(): ''' Programa que lê um inteiro positivo n e imprime uma mensagem indicando se ele é ou não triangular. Observacao: um número inteiro é primo se ele é maior do que 1 e seus únicos divisores são ele mesmo e 1. Assim, 1 não é primo. Exemplos de execução Digite o valor de n (n > 0): 1 1 não é primo Digite o valor de n (n > 0): 4 4 não é primo Digite o valor de n (n > 0): 27644437 27644437 é primo ''' print("Determina se um número n > 0 é primo\n") # leia o valor de n n = int(input("Digite o valor de n (n > 0): ")) # n é primo até que se prove o contrário é_primo = True # procure por um divisor de n entre 2 e n-1 divisor = 2 while divisor < n and é_primo: # equivalente a "div... and é_primo == True:" if n % divisor == 0: é_primo = False divisor += 1 if é_primo and n != 1: # 1 não é primo print(n, "é primo") else: print(n, "não é primo") # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . main() #------------------------------------------------------------------ # Solução 2: Conta os divisores de n entre 1 e n # #------------------------------------------------------------------ def main(): ''' Programa que lê um inteiro positivo n e imprime uma mensagem indicando se ele é ou não triangular. Observacao: um número inteiro é primo se ele é maior do que 1 e seus únicos divisores são ele mesmo e 1. Assim, 1 não é primo. Exemplos de execução Digite o valor de n (n > 0): 1 1 não é primo Digite o valor de n (n > 0): 4 4 não é primo Digite o valor de n (n > 0): 27644437 27644437 é primo ''' print("Determina se um número n > 0 é primo\n") # leia o valor de n n = int(input("Digite o valor de n (n > 0): ")) # inicialize o contador de número divisores de n cont_divisores = 0 # conta o número de divisores entre 1 e n for divisor in range(1,n+1): if n % divisor == 0: cont_divisores += 1 # imprima mensagem if cont_divisores == 2: print(n, "é primo") else: print(n, "não é primo") # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . main() #------------------------------------------------------------------ # Solução 3: Essencialmente idêntica à solução 1, um pouco mais # eficiente já que dentro do while só testa divibilidade # por números ímpares. # #------------------------------------------------------------------ def main(): ''' Programa que lê um inteiro positivo n e imprime uma mensagem indicando se ele é ou não triangular. Observacao: um número inteiro é primo se ele é maior do que 1 e seus únicos divisores são ele mesmo e 1. Assim, 1 não é primo. Exemplos de execução Digite o valor de n (n > 0): 1 1 não é primo Digite o valor de n (n > 0): 4 4 não é primo Digite o valor de n (n > 0): 27644437 27644437 é primo ''' print("Determina se um número n > 0 é primo\n") # leia o valor de n n = int(input("Digite o valor de n (n > 0): ")) # n é primo até que se prove o contrário if n == 2 or (n != 1 and n % 2 == 1): # 2 é primo , 1 não é primo é_primo = True else: é_primo = False # pares maiores que 2 não são primos # procure por um divisor ímpar de n entre 2 e n-1 divisor = 3 while divisor < n and é_primo: # equivalente a "div ... and é_primo == True:" if n % divisor == 0: é_primo = False divisor += 2 if é_primo: print(n, "é primo"); else: print(n, "não é primo"); # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . main() #------------------------------------------------------------------ # Solução 4: Essencialmente idêntica à solução 3, um pouco mais # eficiente já que dentro do while só testa divibilidade # por números ímpares menores que n//2. # # Poderíamos ainda usar o fato de que se um número # n possui um divisor maior que 1, então ele possui # um divisor maior que 1 e menor ou igual a raiz quadrada # de n. # #------------------------------------------------------------------ def main(): ''' Programa que lê um inteiro positivo n e imprime uma mensagem indicando se ele é ou não triangular. Observacao: um número inteiro é primo se ele é maior do que 1 e seus únicos divisores são ele mesmo e 1. Assim, 1 não é primo. Exemplos de execução Digite o valor de n (n > 0): 1 1 não é primo Digite o valor de n (n > 0): 4 4 não é primo Digite o valor de n (n > 0): 27644437 27644437 é primo ''' print("Determina se um número n > 0 é primo\n") # leia o valor de n n = int(input("Digite o valor de n (n > 0): ")) # n é primo até que se prove o contrário if n == 2 or (n != 1 and n % 2 == 1): # 2 é primo , 1 não é primo é_primo = True else: é_primo = False # pares maiores que 2 não são primos # procure por um divisor ímpar de n entre 2 e n-1 divisor = 3 while divisor < n // 2 and é_primo: # equivalente a "div ... and é_primo == True:" if n % divisor == 0: é_primo = False divisor += 2 if é_primo: print(n, "é primo"); else: print(n, "não é primo"); # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . main()
1
Dislike0
User badge image

Rodrigo Souza

Em C seria mais ou menos assim:printf (" Digite um valor inteiro maior que Zero" , n);for ( i = 1; i
0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais