1
样例输出
2
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int[] shu=new int [100002];
int[] su=new int[10000];
int n=1,m;
long s=1;
for(int i=2;i<=100000;i++){ //素数筛
if(shu[i]==0) su[n++]=i;
for(int j=1;(j<n)&&(su[j]*i<=100000);j++){
shu[su[j]*i]=1;
if(i%su[j]==0) break;
}
}
while(cin.hasNext()){
s=1;
m=cin.nextInt();
for(int i=1;i<=m;i++){
s*=su[i];
s%=50000;
}
System.out.println(s);
}
cin.close();
}
}
青理后一直听我家小姐姐说素数筛,也不知道什么东西,也一直没百度(果然差都是有理由的),总于看见素数的题了,学习了
莫名其妙,,,,,,把代码改了一下,
su[1]=2;
for(int i=3;i<=100000;i+=2){
if(shu[i]==0) su[n++]=i;
for(int j=2;(j<n)&&(su[j]*i<=100000);j++){
shu[su[j]*i]=1;
if(i%su[j]==0) break;
}
}
想着直接把2的倍数跳过结果。。。。。结果。。。。。。。
CPU时间长了,emmmmmm不知道为什么