整数とか素数とか

素数

素数判定

[ ]:

素数生成

[ ]:

約数

[6]:
import sympy

sympy.divisors(7776)
[6]:
[1,
 2,
 3,
 4,
 6,
 8,
 9,
 12,
 16,
 18,
 24,
 27,
 32,
 36,
 48,
 54,
 72,
 81,
 96,
 108,
 144,
 162,
 216,
 243,
 288,
 324,
 432,
 486,
 648,
 864,
 972,
 1296,
 1944,
 2592,
 3888,
 7776]

素因数分解

[3]:
import sympy

sympy.factorint(7776)
[3]:
{2: 5, 3: 5}

最大公約数

[7]:
## 二つの整数、aとbについて最大公約数を出す。
def calc_gcd(a, b):
    if a < b:
        a, b = b, a
    if b == 0:
        return a
    return calc_gcd(b, a % b)

偶数奇数並べ替え

[1]:
# [1,2,3,4,2,4,5,1,6,9,8,]

from typing import List


# 新しい配列を作るパターン
def order_even_first_odd_last_v1(numbers: List[int]) -> None:
    even_list, odd_list = [], []
    for num in numbers:
        if num % 2 == 0:
            even_list.append(num)
        else:
            odd_list.append(num)
    numbers[:] = even_list + odd_list


# 新しい配列を作らないパターン

def order_even_first_odd_last_v2(numbers: List[int]) -> None:
    # len(numbers)-1でリストの一番最後
    i, j = 0, len(numbers) - 1
    while i < j:
        if numbers[i] % 2 == 0:
            i += 1
        else:
            numbers[i], numbers[j] = numbers[j], numbers[i]


if __name__ == '__main__':
    l = [0, 1, 3, 4, 2, 4, 1, 6, 8, 9, 8]
    order_even_first_odd_last_v1(l)