后3个点超时,求调
查看原帖
后3个点超时,求调
1114140
yuniko_n楼主2024/3/28 14:08
import java.util.*;
public class Main{
	static int n,m;
	static boolean []a=new boolean[100000002];//存范围
	static int []b=new int[10000002];//存质数
	//欧拉筛
	public static void prime() {
		int flag=1;
		for(int i=2;i<=n;i++) {
			if(!a[i]) {
				b[flag]=i;
				flag++;
			}
			for(int j=1;j<=flag&&i*b[j]<=n;j++) {
				a[i*b[j]]=true;
				if(i%b[j]==0)
					break;
			}
		}
	}
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		n=sc.nextInt();
		m=sc.nextInt();
		prime();//预处理
		for(int i=1;i<=m;i++) {
			int x=sc.nextInt();
			System.out.println(b[x]);
		}
		
	}
}
2024/3/28 14:08
加载中...