-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathPrograma 5_1.py
More file actions
67 lines (57 loc) · 2.1 KB
/
Programa 5_1.py
File metadata and controls
67 lines (57 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# -*- coding: utf-8 -*-
"""
@author: guardati
Problema 5.1
"""
def es_primo(numero):
""" Determina si un número es primo o no.
Parámetro:
número: es de tipo int o float y > 0.
Regresa:
True si el número es primo o False en caso contrario.
"""
primo = False
if numero == 2:
primo = True
else:
# Descarta el 1 y todos los pares > 2.
if numero > 2 and numero % 2 != 0:
divisor = 3
limite = numero // 2
while divisor < limite and numero % divisor != 0:
divisor += 2
if divisor >= limite:
primo = True
return primo
#========================================================
# Algunos usos de la función.
#========================================================
# Determina si un número es o no primo (problema 4.30).
dato = int(input('\nIngrese un número entero positivo: '))
if dato <= 0:
print('\nError en el dato.')
else:
if es_primo(dato):
print(f'El número {dato} sí es un número primo')
else:
print(f'El número {dato} no es un número primo')
# Encuentra todos los primos hasta el valor dado (problema 4.34).
valor = int(input('\nIngrese hasta qué valor quiere analizar: '))
if valor <= 0:
print('\nError en el dato.')
else:
for numero in range(2, valor + 1):
if es_primo(numero):
print(f'El número {numero} sí es un número primo')
# Encuentra todos los primos gemelos hasta el valor dado (problema 4.37).
valor = int(input('\nIngrese hasta qué valor quiere encontrar primos gemelos: '))
if valor <= 0:
print('\nError en el dato.')
else:
print('\nLista de pares de primos gemelos:')
primo_anterior = 0
for numero in range(3, valor + 1, 2):
if es_primo(numero):
if numero - primo_anterior == 2:
print(f'{primo_anterior} - {numero}'.center(30))
primo_anterior = numero