π ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΡΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠΈΡΠΎΠ½Π°?
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΡΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π°, ΠΏΡΠΎΠ²Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π²Π½ΠΈΠ· Π΄ΠΎ 1. ΠΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΠΈΠΊΠ»Π° Π±Π΅Π· ΠΎΡΡΠ°ΡΠΊΠ°, ΡΠΎ ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π½Π° Python:
# ΠΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΈΡΠ»ΠΎ
num = int(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: "))
# ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ
max_divisor = 0
# ΠΡΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ
for i in range(num // 2, 0, -1):
if num % i == 0:
max_divisor = i
break
# ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ
print("ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΡΠ»Π°", num, ":", max_divisor)
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΡΠ»Π° Π² Python
Π§Π°ΡΡΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π½Π°ΠΉΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΡΠ»Π°. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ - ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π΄Π΅Π»ΠΈΡΡΡ Π±Π΅Π· ΠΎΡΡΠ°ΡΠΊΠ°. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΡΠ»Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python.
ΠΠ΅ΡΠΎΠ΄ 1: ΠΠ΅ΡΠ΅Π±ΠΎΡ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ
ΠΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΠΉΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΡΠ»Π° - ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π΄Π΅Π»ΠΈΡΠ΅Π»ΠΈ ΠΈ Π½Π°ΠΉΡΠΈ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ 1 Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°.
def find_max_divisor(num):
max_divisor = 1
for i in range(1, num + 1):
if num % i == 0:
max_divisor = i
return max_divisor
num = 16
max_divisor = find_max_divisor(num)
print(f"ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΡΠ»Π° {num} ΡΠ°Π²Π΅Π½ {max_divisor}")
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ find_max_divisor, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ num Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ max_divisor ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 1, ΠΈ Π΄Π°Π»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠΊΠ» for Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π²ΡΠ΅Ρ ΡΠΈΡΠ΅Π» ΠΎΡ 1 Π΄ΠΎ num.
ΠΠ½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π΄Π΅Π»ΠΈΡΡΡ Π»ΠΈ num Π½Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ i Π±Π΅Π· ΠΎΡΡΠ°ΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° %. ΠΡΠ»ΠΈ ΠΎΡΡΠ°ΡΠΎΠΊ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°Π²Π΅Π½ 0, ΡΠΎ i ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ ΡΠΈΡΠ»Π° num. ΠΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ max_divisor Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ.
Π ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ max_divisor. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ num ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π° ΡΠΊΡΠ°Π½.
ΠΠ΅ΡΠΎΠ΄ 2: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²
ΠΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ num Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅, ΠΏΠ΅ΡΠ΅Π±ΠΎΡ Π²ΡΠ΅Ρ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ.
import math
def find_max_divisor(num):
max_divisor = 1
sqrt_num = int(math.sqrt(num))
for i in range(1, sqrt_num + 1):
if num % i == 0:
max_divisor = i
if num // i != i:
max_divisor = num // i
return max_divisor
num = 16
max_divisor = find_max_divisor(num)
print(f"ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΡΠ»Π° {num} ΡΠ°Π²Π΅Π½ {max_divisor}")
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ math.sqrt() ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ math, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΡΠ΅Π½Ρ ΡΠΈΡΠ»Π° num. ΠΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌ Π΅Π³ΠΎ Π² ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ int() ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ sqrt_num, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠΊΠ» for Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π²ΡΠ΅Ρ ΡΠΈΡΠ΅Π» ΠΎΡ 1 Π΄ΠΎ sqrt_num. ΠΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π΄Π΅Π»ΠΈΡΡΡ Π»ΠΈ num Π½Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ i Π±Π΅Π· ΠΎΡΡΠ°ΡΠΊΠ°, ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ max_divisor ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ num Π½Π° i ΡΠ°Π²Π½ΡΠΌ i, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ ΡΠ°Π²Π΅Π½ i, ΡΠΎ num // i ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ ΡΠΈΡΠ»Π° num.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ max_divisor ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π° ΡΠΊΡΠ°Π½.
ΠΡΠ²ΠΎΠ΄
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΡΠ»Π° Π² Python. ΠΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ΅ Π²ΡΠ΅Ρ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ, Π° Π΄ΡΡΠ³ΠΎΠΉ - Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ². ΠΠ±Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
ΠΠ°ΠΉΠ΄Π΅Π½Π½ΡΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΡΠ»Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΡΠ»Π° Π½Π° ΠΏΡΠΎΡΡΠΎΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΡΠΈΡΠ»Π°.