結果
| 問題 | 
                            No.889 素数!
                             | 
                    
| コンテスト | |
| ユーザー | 
                             naoe123
                         | 
                    
| 提出日時 | 2020-02-01 04:10:58 | 
| 言語 | Python3  (3.13.1 + numpy 2.2.1 + scipy 1.14.1)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 1,494 bytes | 
| コンパイル時間 | 77 ms | 
| コンパイル使用メモリ | 12,544 KB | 
| 実行使用メモリ | 11,008 KB | 
| 最終ジャッジ日時 | 2024-09-18 19:28:00 | 
| 合計ジャッジ時間 | 3,059 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 60 WA * 1 | 
ソースコード
N=int(input())
import math
def isPrime(n):
    if n == 2:
        return True
    if n % 2 == 0:
        return False
    # nの平方根まで計算する
    m = math.floor(math.sqrt(n)) + 1
    for p in range(3, m, 2):
        if n % p == 0:
            return False
    return True
def bisearch(f, n):
    l = 0
    r = n
    fl = f(l)
    fr = f(r)
    while l <= r:
        m = (l + r) // 2
        fm = f(m)
        #print l,m,r,fl,fm,fr,n
        if fm == n:
            return m
        elif fm > n:
            r = m - 1
            fr = f(r)
        else:
            l = m + 1
            fl = f(l)
def try_square_root(n2):
    return bisearch(lambda n:n*n, n2)
def is_integer_num(n):
    if isinstance(n, int):
        return True
    if isinstance(n, float):
        return n.is_integer()
    return False
def sanjoucheck(n3):
    return bisearch(lambda n:n*n*n, n3)
def sigma(n):
  sum = 0 # これに約数を足していく
  for d in range(1, n + 1): # 1とnの間の自然数が約数か確かめていく
    if n % d == 0: # dがnの約数なら
      sum += d # sumにdを加える
  return sum
perfect=[]
def perfects(l): # lまでの完全数を出力する
  for i in range(1, l + 1):
    if sigma(i) == 2 * i:
      perfect.append(i)
  return perfect
if isPrime(N):
    print('Sosu!')
elif N>=2 and try_square_root(N):
    print('Heihosu!')
elif N>=2 and sanjoucheck(N):
    print('Ripposu!')
elif N in perfects(N):
    print('Kanzensu!')
else:
    print(N)
            
            
            
        
            
naoe123