結果
問題 | No.1006 Share an Integer |
ユーザー |
![]() |
提出日時 | 2020-05-07 11:55:03 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 466 ms / 2,000 ms |
コード長 | 657 bytes |
コンパイル時間 | 84 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 11,136 KB |
最終ジャッジ日時 | 2024-07-03 09:23:34 |
合計ジャッジ時間 | 5,358 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
import math x=int(input()) #約数列挙 def make_divisors(n): divisors = [] for i in range(1, int(n**0.5)+1): if n % i == 0: divisors.append(i) if i != n // i: divisors.append(n//i) divisors.sort() return divisors def f(a): return a-len(make_divisors(a)) ans=float("inf") cnt=[] check=ans if x==2: print(1, 1) exit() for i in range((x//2)-int(math.sqrt(x))-1,(x//2)+int(math.sqrt(x))+1): tmp=abs(f(i)-f(x-i)) if ans>=tmp: cnt.append(i) ans=tmp check=min(check,tmp) for i in cnt: if abs(f(i)-f(x-i))==check and i>0 and x-i>0: print(i,x-i)