結果

問題 No.1006 Share an Integer
ユーザー kbyskbys
提出日時 2020-06-24 01:46:14
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,658 ms / 2,000 ms
コード長 718 bytes
コンパイル時間 286 ms
コンパイル使用メモリ 87,164 KB
実行使用メモリ 255,280 KB
最終ジャッジ日時 2023-09-16 20:28:13
合計ジャッジ時間 17,112 ms
ジャッジサーバーID
(参考情報)
judge14 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 73 ms
71,172 KB
testcase_01 AC 77 ms
71,148 KB
testcase_02 AC 77 ms
75,484 KB
testcase_03 AC 73 ms
71,184 KB
testcase_04 AC 78 ms
75,328 KB
testcase_05 AC 81 ms
76,264 KB
testcase_06 AC 82 ms
76,180 KB
testcase_07 AC 80 ms
76,464 KB
testcase_08 AC 81 ms
75,968 KB
testcase_09 AC 81 ms
75,992 KB
testcase_10 AC 81 ms
76,268 KB
testcase_11 AC 930 ms
193,564 KB
testcase_12 AC 1,595 ms
244,992 KB
testcase_13 AC 1,650 ms
250,372 KB
testcase_14 AC 1,658 ms
255,280 KB
testcase_15 AC 1,366 ms
236,052 KB
testcase_16 AC 664 ms
168,676 KB
testcase_17 AC 914 ms
194,004 KB
testcase_18 AC 1,382 ms
241,840 KB
testcase_19 AC 1,292 ms
213,980 KB
testcase_20 AC 1,426 ms
239,160 KB
testcase_21 AC 1,629 ms
250,064 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys

def main(args):
    
    X = int(input())
    
    fn = [i-1 for i in range(X+1)]#約数1の分を引く
    
    for i in range(2,X+1):
        fn[2*i::i] = map(lambda x:x-1,fn[2*i::i])
        
    #print(fn)
        
    minimum = float('inf')
    for a in range(1,X//2+1):
        tmp = abs(fn[a]-fn[X-a])
        if tmp < minimum:
            ans = {}
            ans[tmp] = [(a, X-a)]
            minimum = tmp
        elif tmp == minimum:
            ans[tmp].append((a, X-a))
    
    for r in ans[minimum]:
        u, v = r
        print(u, v)
    for r in ans[minimum][::-1]:
        u, v = r
        if u != v:
            print(v, u)
        
if __name__ == '__main__':
    main(sys.argv[1:])
0