前提・実現したいこと
問題はこちらです
ソースコードを提出した際に、一つだけ(testcase 24)がWA判定になります。自分では原因が特定できませんでした。
Python
1import math 2 3a, b = list(map(int, input().split())) 4 5def judge_prime_number(target): 6 dest = int(math.sqrt(target)) 7 for i in range(2, dest +1): 8 if target % i == 0: 9 return False 10 return True 11 12def return_divisor(target): 13 divisor_set = set() 14 dest = int(math.sqrt(target)) 15 for i in range(2, dest + 1): 16 if target % i == 0: 17 if judge_prime_number(i): 18 divisor_set.add(i) 19 if judge_prime_number(target // i): 20 divisor_set.add(target // i) 21 if target != 0: 22 divisor_set.add(1) 23 return divisor_set 24 25 26a_divisor_set = return_divisor(a) 27b_divisor_set = return_divisor(b) 28common_divisor = a_divisor_set & b_divisor_set 29print(len(common_divisor))
していることは、return_divisor関数で素数である約数の集合を生成します。素数の判定はjudge_prime_number関数で行っています。
半日ほど考えましたが、原因がつかめませんでした。お気づきになられた点がありましたら、よろしくおねがいいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/27 08:50