結果

問題 No.1006 Share an Integer
ユーザー konchanksukonchanksu
提出日時 2020-03-18 19:11:29
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
WA  
実行時間 -
コード長 949 bytes
コンパイル時間 305 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 22,016 KB
最終ジャッジ日時 2024-12-14 02:24:25
合計ジャッジ時間 34,867 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 4 WA * 4 TLE * 11
権限があれば一括ダウンロードができます

ソースコード

diff #

import math

def soinsu(lists, num):
    for i in range(2, int(math.sqrt(num)) + 1):
        if num % i == 0:
            lists.append(i)
            return soinsu(lists, num / i)
    
    lists.append(int(num))
    lists.append(1)
    return lists

def tindon(lists, num=1, sets=set(), longer=0):
    for i in range(2):
        num *= (lists[longer] ** i)
        if longer != len(lists) - 1:
            tindon(lists, num, sets, longer + 1)
        else:
            sets.add(num)

    return len(sets)
        
x = int(input())
ans, big = [], x

for i in range(1, x // 2 + 1):    
    a = i - tindon(soinsu([], i), sets=set())
    b = x - i - tindon(soinsu([], x-i), sets=set())

    if abs(a - b) == big:
        big = abs(a - b)
        ans.append(i)
        ans.append(x - i)
    elif abs(a - b) < big:
        ans.clear()
        ans.append(i)
        ans.append(x - i)
        big = abs(a - b)

ans.sort()

for i in ans:
    print(i, x - i)
0