πŸ” Как Π½Π°ΠΉΡ‚ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π² Python: Π»Π΅Π³ΠΊΠΈΠΉ способ ΠΈ инструкция

Как Π½Π°ΠΉΡ‚ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π² Python?

Π’ Python сущСствуСт нСсколько способов Π½Π°ΠΉΡ‚ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ числа. Один ΠΈΠ· простых ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ всСх чисСл ΠΎΡ‚ 1 Π΄ΠΎ самого числа.


def find_divisors(num):
    divisors = []
    for i in range(1, num+1):
        if num % i == 0:
            divisors.append(i)
    return divisors

number = 36
divisors = find_divisors(number)
print("Π”Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ числа", number, ":", divisors)

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ find_divisors, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ число Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список всСх Π΅Π³ΠΎ Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для числа 36 ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚:


Π”Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ числа 36: [1, 2, 3, 4, 6, 9, 12, 18, 36]

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ числа 36 - это [1, 2, 3, 4, 6, 9, 12, 18, 36].

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Π½Π°ΠΉΡ‚ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π² Python?

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ числа Π² Python, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим Π΄Π²Π° основных способа - с использованиСм Ρ†ΠΈΠΊΠ»Π° ΠΈ рСкурсии.

1. ИспользованиС Ρ†ΠΈΠΊΠ»Π°

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ», ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ всС числа ΠΎΡ‚ 1 Π΄ΠΎ самого числа ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, дСлится Π»ΠΈ ΠΎΠ½ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ… Π±Π΅Π· остатка. Если Π΄Π°, Ρ‚ΠΎ это число являСтся Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


num = int(input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число: "))
divisors = []

for i in range(1, num+1):
    if num % i == 0:
        divisors.append(i)

print(f"Π”Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ числа {num}: {divisors}")
    

Π’ ΠΊΠΎΠ΄Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ число с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ input() ΠΈ сохраняСм Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ num. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм пустой список divisors, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ всС Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ числа num. Π”Π°Π»Π΅Π΅, с использованиСм Ρ†ΠΈΠΊΠ»Π° for, ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ всС числа ΠΎΡ‚ 1 Π΄ΠΎ num. Если число дСлится Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π±Π΅Π· остатка, ΠΌΡ‹ добавляСм Π΅Π³ΠΎ Π² список divisors. НаконСц, ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ всС Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ числа.

2. ИспользованиС рСкурсии

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ Π½Π°ΠΉΡ‚ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ числа - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ. РСкурсивная функция Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ саму сСбя Π΄ΠΎ достиТСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ условия Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для поиска Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ числа:


def find_divisors(num, divisor=1, divisors=[]):
    if divisor > num:
        return divisors

    if num % divisor == 0:
        divisors.append(divisor)

    return find_divisors(num, divisor+1, divisors)

num = int(input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число: "))
divisors = find_divisors(num)

print(f"Π”Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ числа {num}: {divisors}")
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ опрСдСляСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ find_divisors, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Ρ€ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° - число num (для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ), Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ divisor ΠΈ список divisors для хранСния Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ сначала провСряСм условиС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ рСкурсии - Ссли Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ прСвысил число num, Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ список Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ провСряСм, дСлится Π»ΠΈ число num Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π±Π΅Π· остатка, ΠΈ Ссли Π΄Π°, Ρ‚ΠΎ добавляСм Π΅Π³ΠΎ Π² список divisors. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ find_divisors с ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ дСлитСля ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ списком Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ.

ΠžΠ±Ρ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄

ΠœΡ‹ рассмотрСли Π΄Π²Π° основных способа Π½Π°ΠΉΡ‚ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ числа Π² Python - с использованиСм Ρ†ΠΈΠΊΠ»Π° ΠΈ рСкурсии. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любой ΠΈΠ· этих ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

21 Π¦ΠΈΠΊΠ» while. НахоТдСниС всСх Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ числа Python

Π‘Π°ΠΌΡ‹ΠΉ быстрый Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ числа | Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π•Π“Π­ 2023

7.6 НаимСньший Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ. "ПоколСниС Python": курс для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. ΠšΡƒΡ€Ρ Stepik

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”’ Как пСрСвСсти Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ систСму счислСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

⭐️ Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΎΡ‚ 1 Π΄ΠΎ 10? Π›Π΅Π³ΠΊΠΈΠΉ Π³Π°ΠΉΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ⭐️

πŸ–ŒοΈ Как Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ сСтчатого ΠΏΠΈΡ‚ΠΎΠ½Π°: пошаговая инструкция

πŸ” Как Π½Π°ΠΉΡ‚ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π² Python: Π»Π΅Π³ΠΊΠΈΠΉ способ ΠΈ инструкция

Какой Π·Π½Π°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Python для записи умноТСния? πŸβœ–οΈ

πŸ”¬ Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ Π½Π° Python

Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π² Python: простой способ