3237 - GCDnot1: Difference between revisions
Line 43: | Line 43: | ||
for a in range(2, 1000): | for a in range(2, 1000): | ||
for b in range(a + 1, a + 1000): | for b in range(a + 1, a + 1000): | ||
if este_prim(a) and este_prim(b) and este_prim(a + n) and este_prim(b + m) and este_prim(a + i) and este_prim(b + j) for i in range(m) for j in range(n): | if all(este_prim(a) and este_prim(b) and este_prim(a + n) and este_prim(b + m) and este_prim(a + i) and este_prim(b + j) for i in range(m) for j in range(n)): | ||
return a, b | return a, b | ||
# Citire date de intrare | # Citire date de intrare | ||
m = int(input(" | m = int(input("Introduceți m: ")) | ||
n = int(input(" | n = int(input("Introduceți n: ")) | ||
# | # Găsire numere a și b | ||
a, b = gaseste_numere_prime(m, n) | a, b = gaseste_numere_prime(m, n) | ||
# | # Afișare rezultat | ||
print(f"Numerele a | print(f"Numerele a și b sunt: {a}, {b}") | ||
Latest revision as of 11:31, 29 December 2023
Cerinta[edit | edit source]
Se dau m şi n numere naturale nenule. Să se determine două numere naturale a şi b astfel încât c.m.m.d.c.(a + i , b + j) > 1 pentru orice i = 0 , m-1 şi orice j = 0 , n-1.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele m şi n.
Date de iesire[edit | edit source]
Programul va afișa pe ecran numerele a şi b.
Restrictii si precizari[edit | edit source]
- 1 ⩽ m , n ⩽ 5
- numerele a şi b vor avea cel mult 18 cifre fiecare
Exemplul 1[edit | edit source]
- Intrare
- 1 2
- Iesire
- Datele introduse corespund restrictiilor impuse
- 6 14
Exemplul 2[edit | edit source]
- Intrare
- 0 100
- Iesire
- Datele introduse nu corespund restrictiilor impuse
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> def este_prim(numar):
if numar < 2: return False for i in range(2, int(numar ** 0.5) + 1): if numar % i == 0: return False return True
def gaseste_numere_prime(m, n):
for a in range(2, 1000): for b in range(a + 1, a + 1000): if all(este_prim(a) and este_prim(b) and este_prim(a + n) and este_prim(b + m) and este_prim(a + i) and este_prim(b + j) for i in range(m) for j in range(n)): return a, b
- Citire date de intrare
m = int(input("Introduceți m: ")) n = int(input("Introduceți n: "))
- Găsire numere a și b
a, b = gaseste_numere_prime(m, n)
- Afișare rezultat
print(f"Numerele a și b sunt: {a}, {b}")
</syntaxhighlight>
Explicatie[edit | edit source]
Avem (6 , 14) = 2 > 1 şi (6 , 15) = 3 > 1.