寝癖頭の解法

勉強中の覚え書きを投稿、更新していきます。

paizaラーニング: Pythonによる「素数メニュー」問題集: 最小公倍数

paizaラーニングのレベルアップ問題集「素数メニュー」からの出典です。
paiza.jp
Pythonによる「素数メニュー」問題集: 最小公倍数 と、それらの提出コードの解答例です。

僕が作成、提出したコードは、以下のとおりです。

・STEP: 1 素因数分解

'''
Pythonによる「素数メニュー」問題集: 最小公倍数 
STEP: 1 素因数分解 
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
n = int(input())
num = n;
i = 2
while(i < n+1):
    if num%i == 0:
        num = num/i
        print(i)
    else:
        i+=1

・STEP: 2 約数の個数

'''
Pythonによる「素数メニュー」問題集: 最小公倍数 
STEP: 2 約数の個数 
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
n = int(input())
num = n;
ans = 1
cnt = 0
i = 2
while(i <= n):
    if num%i == 0:
        num = num/i
        cnt+=1
    else:
        i+=1
        ans*=(cnt+1)
        cnt = 0
print(ans)

・ STEP: 3 最大公約数

'''
Pythonによる「素数メニュー」問題集: 最小公倍数 
 STEP: 3 最大公約数
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
import math
n = int(input())
ans = int(input())
for i in range(n-1):
    b = int(input())
    ans = math.gcd(ans, b)
print(ans)

・FINAL問題: 最小公倍数

'''
Pythonによる「素数メニュー」問題集: 最小公倍数 
FINAL問題: 最小公倍数 
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
import math
def lcm(ans, b):
    return int(ans*b / math.gcd(ans, b))
n = int(input())
ans = int(input())
for i in range(n-1):
    b = int(input())
    ans = lcm(ans, b)
print(ans)

paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。