Python. Розв’язування задач на обробку цілих чисел

У даній темі наведено приклади розв’язку найбільш поширених задач, що пов’язані з обробкою цілих чисел. Вивчення теми передбачає базові знання з основ мови Python, а саме використання засобів вводу/виводу, циклів, списків, функцій тощо.

Зміст

Пошук на інших ресурсах:

1. Виділити усі цифри числа та представити їх у вигляді списку
# Ввід числа n = input("n color: #ff0000;"># Виділити усі цифри числа та представити їх у вигляді списку # Результуючий список L = [] # Цикл формування списку while n>0: number = n%10 # взяти останню цифру L = [number] + L # додати цифру в список n = n/10 # забрати останню цифру з числа print("L color: #333300;">⇑ 
2. Визначити задану цифру у цілому числі
2.1. Позиція задається зліва

У прикладі визначається задана цифра зліва у заданому числі.

# Задача. Виділити цифру в числі за її позицією. # 1. Ввід числа n = input("n color: #ff0000;"># 2. Ввід позиції (починається з 0) pos = input("pos color: #ff0000;"># 3. Сформувати список цифр числа L = [] # результуючий список # Цикл формування списку L while n>0: L = [n%10] + L # взяти останню цифру та додати цифру в список n = n/10 # забрати останню цифру з числа # 4. Отримати цифру num = L[pos] # 5. Вивести шукану цифру print("num color: #800080;">print("L color: #333300;">⇑ 
2.2. Позиція задається справа

Якщо задано номер позиції справа (починаючи з 0), то у попередньому прикладі 2.1. рядок

. # 4. Отримати цифру num = L[pos] .

потрібно замінити на рядок

# 4. Отримати цифру за зміщенням від кінця num = L[len(L) - pos - 1]
3. Обчислити суму цифр цілого числа

# Задача. Обчислити суму цифр числа # 1. Ввід числа n = input ( "n color: #ff0000;"># 2. Обчислити суму summ = 0 # Сума, яка обчислюється # Цикл виділення цифр з числа та обчислення суми while n>0: summ = summ + n%10 # взяти останню цифру та додати цифру до суми n = n/10 # забрати останню цифру з числа # 3. Вивести суму print ( "sum color: #333300;">⇑

4. Інвертувати ціле число (1234 => 4321)

Інвертувати число означає, що потрібно отримати нове число, яке читається як задане число тільки з кінця до початку.

# Задача. Інвертувати число import math # 1. Ввід числа n = input ( "n color: #ff0000;"># 2. Утворення нового числа з інвертованого # 2.1. Спочатку потрібно обчислити кількість цифр (порядок) у числі k = 0 n2 = n while n2>0: k = k+1 # збільшити лічильник кількості цифр на 1 n2 = n2/10 # Забрати останню цифру # Цикл виділення цифр з числа n та утворення інвертованого числа while n>0: # взяти останню цифру last = n%10 # зменшити порядок числа k = k-1 # помножити отриману цифру на 10^k # і додати її до нового числа n2 = n2 + int (last*math.pow(10, k)) # n2 - нове число, яке формується # забрати останню цифру з числа n = n/10 # 3. Вивести нове число print ( "n2 color: #333300;">⇑

5. Функція GetNumCount() . Визначити кількість цифр у числі

Реалізувати функцію GetNumCount() , яка визначає кількість цифр у цілому числі. Функція отримує параметром вихідне число.

# Задача. Визначити кількість цифр у числі import math # Функція GetNumCount() - визначити кількість цифр у числі def GetNumCount (n): k = 0 # k - результат while n>0: k = k+1 n = n/10 return k # Демонстрація роботи функції # Ввід числа n = input ( "n color: #ff0000;"># Виклик функції k = GetNumCount(n) print ( "k color: #333300;">⇑

6. Функція GetMaxNum() . Визначити максимальну цифру у числі

У заданому цілому числі n ( n >0) потрібно визначити максимальну цифру. Наприклад, якщо є число 2883345, то максимальна цифра буде 8.

# Задача. Визначити максимальну цифру у числі import math # Функція GetMaxNum() - визначити максимальну цифру в числі def GetMaxNum (n): # отримати останню цифру числа Max = n%10 while n>0: n = n/10 # зменшити число if Max < n%10: # порівняти останню цифру з максимумом Max = n%10 return Max # Демонстрація роботи функції # Ввід числа n = input ( "n color: #ff0000;"># Виклик функції num = GetMaxNum(n) print ( "num color: #333300;">⇑

7. Функція GetMinNum() . Визначити мінімальну цифру в числі

Задача розв’язується так само як і в попередньому прикладі.

# Задача. Визначити мінімальну цифру у числі import math # Функція GetMinNum() - визначити мінімальну цифру у числі def GetMinNum (n): # отримати останню цифру числа Min = n%10 while n>0: n = n/10 # зменшити число if Min > n%10: # порівняти останню цифру з мінімумом Min = n%10 return Min # Демонстрація роботи функції # Ввід числа n = input ( "n color: #ff0000;"># Виклик функції num = GetMinNum(n) print ( "num color: #333300;">⇑

Зв’язані теми

Просте число

Просте число – це натуральне число, яке ділиться без остачі на себе і на одиницю.

Метод для перевірки, чи є число простим

Виходячи з визначення простоти числа, напишемо метод для перевірки.

Просте число повинно задовольняти умови:

  • Бути більшим за одиницю – умову перевіримо за допомогою умовного оператора if;
  • Ділитись без остачі тільки на одиницю та на себе – в циклі перевіримо чи ділиться N без остачі, на числа з діапазону від 2 до N-1.
public static bool IsPrimeNumber(uint n) < var result = true; if (n > 1) < for (var i = 2u; i < n; i++) < if (n % i == 0) < result = false; break; > > > else < result = false; > return result; > 

Якщо число, яке передається в якості аргументу методу, є простим, метод повертає значення true та false в іншому випадку.

Використання методу перевірки числа N на простоту

Прості числа з діапазону від 0 до N

Використовуючи метод для перевірки, можемо вивести на екран всі прості числа з проміжку від 0 до N.

Програма для виводу простих чисел:

static void Main(string[] args) < Console.Write("N hljs-keyword">var n = Convert.ToUInt32(Console.ReadLine()); Console.WriteLine("Прості числа з діапазону (, )", 0, n); for (var i = 0u; i < n; i++) < if (IsPrimeNumber(i)) < Console.Write($" "); > > Console.ReadLine(); > 

Результат роботи програми:

N перших простих чисел

Після невеликої модифікації програми, можемо вивести необхідну кількість простих чисел.

Програма для виводу на екран N перших простих чисел:

static void Main(string[] args) < Console.Write("N hljs-keyword">var n = Convert.ToUInt32(Console.ReadLine()); Console.WriteLine(" перших простих чисел", n); var count = 0u; var i = 0u; while (count < n) < if (IsPrimeNumber(i)) < Console.Write(i); if (count < n - 1) < Console.Write(", "); > count++; > i++; > Console.ReadLine(); > 

Результат роботи програми: