#author("2026-07-01T14:29:09+09:00;2023-02-23T23:33:34+09:00","default:vip","vip")
[[練習問題]]

繰り返し二乗法。

 # -*- coding: utf-8 -*-
 def pow(a, n):
   res = 1
   while n > 0:
     if n & 1: res = res * a
     if n & 1: res *= a
     a **= 2
     n >>= 1
   return res
 
 print pow(2, 0)
 print pow(2, 1)
 print pow(2, 2)
 print pow(2, 10)
 print pow(2, 1024)
 print pow(2, 1000007) # だいたい10秒ぐらい。
 print 2 ** 1000007  # これも10秒ぐらいだった。
 print(pow(2, 0))
 print(pow(2, 1))
 print(pow(2, 2))
 print(pow(2, 10))
 print(pow(2, 1024))
 print(pow(2, 1000007)) # だいたい10秒ぐらい。
 print(2 ** 1000007)  # これも10秒ぐらいだった。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS