結果
| 問題 | No.1664 Unstable f(n) | 
| コンテスト | |
| ユーザー | 👑  Kazun | 
| 提出日時 | 2021-09-03 21:24:16 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 39 ms / 2,000 ms | 
| コード長 | 537 bytes | 
| コンパイル時間 | 301 ms | 
| コンパイル使用メモリ | 82,136 KB | 
| 実行使用メモリ | 54,228 KB | 
| 最終ジャッジ日時 | 2024-12-15 09:40:55 | 
| 合計ジャッジ時間 | 2,829 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 38 | 
ソースコード
#floor(a^(1/k)) を求める.
def Floor_Root(a,k):
    """floor(a^(1/k)) を求める.
    a:非負整数
    k:正の整数
    """
    assert 0<=a and 0<k
    if a==0: return 0
    if k==1: return a
    #大体の値を求める.
    x=int(pow(a,1/k))
    #増やす
    while pow(x+1,k)<=a:
        x+=1
    #減らす
    while pow(x,k)>a:
        x-=1
    return x
#==================================================
N=int(input())
X=N
for j in range(1,100):
    i=Floor_Root(N,j)
    k=N-pow(i,j)
    X=min(X,i+j+k)
print(X)
            
            
            
        