π ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠΈΡΠΎΠ½Π° π
def find_prime_factors(n):
prime_factors = []
i = 2
while i <= n:
if n % i == 0:
prime_factors.append(i)
n = n / i
else:
i = i + 1
return prime_factors
number = int(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: "))
prime_factors = find_prime_factors(number)
print("ΠΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π°", number, ":", prime_factors)
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ "find_prime_factors", ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ "n" Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ Π΅Π³ΠΎ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠΈΠΊΠ» while ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΈΡΠ»ΠΎ "i" Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ ΡΠΈΡΠ»Π° "n". ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΡΠΎ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ "i" Π² ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΡΡΡΡ
ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Π΅ΠΉ ΠΈ Π΄Π΅Π»ΠΈΠΌ "n" Π½Π° "i". ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ, ΠΌΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ "i" Π½Π° 1.
ΠΠΎΡΠ»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²Π΅ΡΡΠΈ ΡΠΈΡΠ»ΠΎ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ "find_prime_factors", ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π² Π½Π΅Π΅ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΡΡΡΡ
ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΠΊΡΠ°Π½.
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π½Π°ΠΉΡΠΈ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° Π² ΠΠΈΡΠΎΠ½Π΅. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ!ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° Π² Python
ΠΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΠΆΠ½ΡΡ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ - ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΡΠΈΡΠ΅Π». Π€Π°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠ°Π·Π»ΠΎΠΆΠΈΡΡ ΡΠΈΡΠ»ΠΎ Π½Π° ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π²ΡΠ΅Ρ ΡΠΈΡΠ΅Π». Π€Π°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΡΠΈΡΠ»Π° - ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΏΡΠΎΡΡΡΡ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Π΅ΠΉ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ, ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° Π² ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python.
ΠΠ΅ΡΠΎΠ΄ Π΄Π΅Π»Π΅Π½ΠΈΡ
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π½Π°ΠΉΡΠΈ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° - ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π΅Π»Π΅Π½ΠΈΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Π΅ΠΉ ΡΠΈΡΠ»Π° 48:
def find_prime_factors(number):
factors = []
divisor = 2
while divisor <= number:
if number % divisor == 0:
factors.append(divisor)
number = number / divisor
else:
divisor += 1
return factors
number = 48
prime_factors = find_prime_factors(number)
print(f"ΠΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° {number}: {prime_factors}")
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ find_prime_factors, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΠΎΡΡΡΡ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Π΅ΠΉ ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. ΠΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ 2 ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π΄Π΅Π»ΠΈΡΡΡ Π»ΠΈ ΡΠΈΡΠ»ΠΎ Π½Π° Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π±Π΅Π· ΠΎΡΡΠ°ΡΠΊΠ°. ΠΡΠ»ΠΈ Π΄Π΅Π»ΠΈΡΡΡ, ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π² ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΠΎΡΡΡΡ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Π΅ΠΉ ΠΈ Π΄Π΅Π»ΠΈΠΌ ΡΠΈΡΠ»ΠΎ Π½Π° Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ Π½Π΅ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ΡΡΠΎΡ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, ΠΌΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π½Π° 1 ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ.
ΠΡΠ»ΠΈ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΈΡΠ»Π° 48, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° 48: [2, 2, 2, 2, 3]
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° 48 - ΡΡΠΎ 2, 2, 2, 2 ΠΈ 3.
ΠΠ΅ΡΠΎΠ΄ ΡΠ΅ΡΠ΅ΡΠ° ΠΡΠ°ΡΠΎΡΡΠ΅Π½Π°
ΠΡΡΠ³ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Π΅ΠΉ ΡΠΈΡΠ»Π° - ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅ΡΠΎ ΠΡΠ°ΡΠΎΡΡΠ΅Π½Π°. Π Π΅ΡΠ΅ΡΠΎ ΠΡΠ°ΡΠΎΡΡΠ΅Π½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΡΠ»Π° Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΡΠ»Π° Π΄Π»Ρ ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΠ΅Π».
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅ΡΠ° ΠΡΠ°ΡΠΎΡΡΠ΅Π½Π° Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Π΅ΠΉ ΡΠΈΡΠ»Π° 48:
def find_prime_factors(number):
prime_factors = []
sieve = [True] * (number+1)
sieve[0] = sieve[1] = False
p = 2
while p * p <= number:
if sieve[p] is True:
for i in range(p * p, number+1, p):
sieve[i] = False
p += 1
for p in range(2, number+1):
if sieve[p] is True:
if number % p == 0:
prime_factors.append(p)
return prime_factors
number = 48
prime_factors = find_prime_factors(number)
print(f"ΠΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° {number}: {prime_factors}")
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² sieve, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΡΠ»Π°. ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ ΡΠΈΡΠ»Π° ΠΎΡ 2 Π΄ΠΎ ΠΊΠΎΡΠ½Ρ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠΈΡΠ»Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΊΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠΆΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΡΡΡΠΌ ΡΠΈΡΠ»Π°ΠΌ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ Π²ΡΠ΅ ΡΠΈΡΠ»Π° ΠΎΡ 2 Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΈ Π΄Π΅Π»ΡΡΡΡ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.
ΠΡΠ»ΠΈ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΈΡΠ»Π° 48, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° 48: [2, 2, 2, 2, 3]
ΠΠ°ΠΊ ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° 48 - ΡΡΠΎ 2, 2, 2, 2 ΠΈ 3.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΉΡΠΈ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° Π² Python ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ². Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π΄Π²Π° ΠΈΠ· Π½ΠΈΡ - ΠΌΠ΅ΡΠΎΠ΄ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ΡΠ΅ΡΠ° ΠΡΠ°ΡΠΎΡΡΠ΅Π½Π°. ΠΠ±Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΏΡΠΎΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° ΠΈ ΡΠ°ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΠΈΡΠ»ΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π΄Π»Ρ ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΡΠ΅Π» ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ.