結果
問題 |
No.316 もっと刺激的なFizzBuzzをください
|
ユーザー |
![]() |
提出日時 | 2018-10-27 23:10:57 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 33 ms / 1,000 ms |
コード長 | 710 bytes |
コンパイル時間 | 379 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-11-19 06:52:53 |
合計ジャッジ時間 | 2,967 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 33 |
ソースコード
n = int(input()) a, b, c = [int(x) for x in input().split(' ')] def get_gcd(a, b): # ユークリッド互除法により最大公約数を求める。 if a < b: a, b = b, a if a % b == 0: return b else: return get_gcd(b, a % b) def get_lcm(a, b): # 2数を掛けあわせ、最大公約数で割れば最小公倍数が求まる。 lcm = a * b // get_gcd(a, b) return lcm count_a = n // a count_b = n // b count_c = n // c count_ab = n // get_lcm(a, b) count_bc = n // get_lcm(b, c) count_ac = n // get_lcm(a, c) count_abc = n // get_lcm(get_lcm(a, b), get_lcm(b, c)) print(count_a + count_b + count_c - count_ac - count_bc - count_ab + count_abc)