Algo51 算法训练 Torry的困惑(基本型)
题目如下:
这题其实就是质数(素数)的运用,之前已经做过素数的判断了,这里就直接暴力解决就好了,所以没啥好说的。注意一点,如果有多组的话建议打个素数表。
在这里还是要吐槽下蓝桥杯的评测数据,太水了,就一个,还只是个8。不过我自己测了下,100000也能1s内结束
代码如下
package algo;
import java.util.Scanner;
/**
* @Description: 算法训练 Torry的困惑(基本型)
* @ClassName: Algo51
* @author: fan.yang
* @date: 2020/07/23 16:42
*/
public class Algo51 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int count = 0;
//我直接跳过2了 方便点
long sum = 2;
for(int i = 3;count < n - 1;i++){
//这个判断很重要 把偶数直接剔除 效率高了
if(i % 2 != 0){
//判断素数过程 不多说了 之前有题目解释过了
int k = (int)Math.sqrt(i) + 1;
int j;
for(j = 3;j <= k;j++){
if(i % j == 0){
break;
}
}
if(j == k + 1){
sum = (sum * i) % 50000;
count++;
}
}
}
System.out.println(sum);
}
}