aboutsummaryrefslogtreecommitdiff
path: root/tests/sysy_lvX/test5_1.sy
blob: 6fddc7e43a4fa21a80e96f66ef5b1082597fb357 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
int isPrime[100005];
int prime[10005];

int main()
{
	int n;
	int q;
	int k;
	int cnt;
	int i;
	int j;
	
	n = getint();
	q = getint();
	
	cnt = 1;
	i=2;
	while (i<=n) {
		if (isPrime[i] == 0) {
			prime[cnt] = i;
			cnt = cnt+1;
		} 
		j=1;
		while (j<cnt && prime[j]*i<=n) {
			isPrime[prime[j]*i] = 1;
			if (i%prime[j] == 0) {
				break;
			}
			j=j+1;
		}
		i=i+1;	
	}
	i=0;
	while (i<q) {
		k=getint();
		putint(prime[k]);
		i=i+1;
	}
    return 0;
}