結果
問題 | No.403 2^2^2 |
ユーザー |
![]() |
提出日時 | 2016-07-25 17:30:17 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 614 bytes |
コンパイル時間 | 14,301 ms |
コンパイル使用メモリ | 238,048 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-06 16:21:42 |
合計ジャッジ時間 | 11,591 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
ソースコード
package main import ( "fmt" ) func main() { var A, B, C int fmt.Scanf("%d^%d^%d", &A, &B, &C) mod := 1000000007 x := pow(pow(A, B, mod), C, mod) y := pow(A, pow(B, C, mod-1)+mod-1, mod) fmt.Println(x, y) } //func pow(x, n, mod int) int { // if n == 0 { // return 1 // } else if x == 0 { // return 0 // } else if n%2 == 0 { // return pow(x*x%mod, n/2, mod) // } else { // return pow(x*x%mod, n/2, mod) * x % mod // } //} func pow(a, b, mod int) int { a %= mod if a == 0 { return 0 } res := 1 for b != 0 { if b&1 == 1 { res = res * a % mod } a = a * a % mod b >>= 1 } return res }