问题 BV: 素数判定优化
内存限制:128 MB
时间限制:2.000 S
评测方式:文本比较
命题人:
提交:995
解决:201
题目描述
判定n是否为一个素数,且n的最大值为1e18。显然如果用一般方法,则耗时高,因此需要一定的优化。
输入
输入数据有多组,每组数据占一行。
当输入0时结束。
0<=n<=1e18。
当输入0时结束。
0<=n<=1e18。
输出
如果输入的n为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。(实际输出均不带引号)
样例输入 复制
5
6
0
样例输出 复制
OK
Sorry
提示
规律:
除2和3以外的所有素数,都可以写成6k-1或6k+1(k为整数),即当一个数在6的倍数的两侧时,它可能是素数,但当其不满足条件时,它一定不是素数。
除2和3以外的所有素数,都可以写成6k-1或6k+1(k为整数),即当一个数在6的倍数的两侧时,它可能是素数,但当其不满足条件时,它一定不是素数。