結果

問題 No.1140 EXPotentiaLLL!
コンテスト
ユーザー ID 21712
提出日時 2026-06-07 02:56:02
言語 Go
(1.26.1)
コンパイル:
env GOCACHE=/tmp go build _filename_
実行:
./Main
結果
TLE  
実行時間 -
コード長 787 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 11,890 ms
コンパイル使用メモリ 285,268 KB
実行使用メモリ 13,712 KB
最終ジャッジ日時 2026-06-07 02:57:18
合計ジャッジ時間 19,670 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 1
other TLE * 1 -- * 11
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

package main

import . "fmt"
import . "os"
import bf "bufio"
import . "math/big"

func main() {
	rd := bf.NewReader(Stdin)
	wr := bf.NewWriter(Stdout)
	defer wr.Flush()
	
	var t int
	Fscan(rd,&t)
	
	for ; t > 0; t-- {
		var a string
		var p Int
		Fscan(rd,&a,&p)
		if p.ProbablyPrime(0) {
			Fprintln(wr, "1")
		} else {
			Fprintln(wr, "-1")
		}
	}
}

/*
考察

フェルマーの小定理より
Pが素数なら(mod P)は(P-1)乗で1になり、階乗であるP!は(P-1)を含むので
Pが素数なら1、合成数なら-1を出力する…?

エラトステネスの篩で素数を事前に求めておいてO(1)で判定するが想定解ぽそうだけど

math/bigの素数判定で処理した場合は間に合うかなあ…?
ミラーレビンってやつだっけ?

*/
0