結果

問題 No.1140 EXPotentiaLLL!
コンテスト
ユーザー ID 21712
提出日時 2026-06-07 03:01:15
言語 Go
(1.26.1)
コンパイル:
env GOCACHE=/tmp go build _filename_
実行:
./Main
結果
WA  
実行時間 -
コード長 1,045 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 12,114 ms
コンパイル使用メモリ 273,580 KB
実行使用メモリ 13,440 KB
最終ジャッジ日時 2026-06-07 03:01:33
合計ジャッジ時間 17,649 ms
ジャッジサーバーID
(参考情報)
judge3_1 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 6 WA * 6
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

package main

import . "fmt"
import . "os"
import bf "bufio"

func main() {
	rd := bf.NewReader(Stdin)
	wr := bf.NewWriter(Stdout)
	defer wr.Flush()
	
	sieve := make([]bool, 5e6+1)
	for i := 2; i < len(sieve); i++ {
		if sieve[i] {
			continue
		}
		for j := i+i; j<len(sieve); j += i {
			sieve[j] = true
		}
	}
	sieve[1] = true
	
	var t int
	Fscan(rd,&t)
	
	for ; t > 0; t-- {
		var a string
		var p int
		Fscan(rd,&a,&p)
		if !sieve[p] {
			Fprintln(wr, "1")
		} else {
			Fprintln(wr, "-1")
		}
	}
}

/*
考察

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

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

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

間に合わなかったね、TLEした

おとなしく篩使います

WAした
1は素数ではない

*/
0