疑惑 , 请大佬解释
查看原帖
疑惑 , 请大佬解释
1122055
Gojo_Satoru2023楼主2024/6/15 17:16

WA代码:

#include <bits/stdc++.h>
using namespace std ;
const int N = 1e8;
int n , m ; 
int mark[N] , p[N] , cnt ;
void prime(){
	for(int i = 2 ; i <= n ; i ++){
		if(!mark[i]){
			p[++cnt] = i ;
		}
		for(int j = 1 ; p[j] * i <= n ; j ++){
			mark[i * p[j]] = 1 ;
			if(i % p[j] == 0) {
				break ;
			}
		}
	}
}
int main(){
	cin >> n >> m ;
	prime();
	for(int i = 1 ; i <= m ; i ++){
		int x ;
		cin >> x ;
		cout << p[x] << "\n";
		continue ;
	}
	return 0 ;
}

AC代码:

#include <bits/stdc++.h>
using namespace std ;
const int N = 1e8;
int n , m ; 
int p[N] , mark[N] , cnt ;
void prime(){
	for(int i = 2 ; i <= n ; i ++){
		if(!mark[i]){
			p[++cnt] = i ;
		}
		for(int j = 1 ; p[j] * i <= n ; j ++){
			mark[i * p[j]] = 1 ;
			if(i % p[j] == 0) {
				break ;
			}
		}
	}
}
int main(){
	cin >> n >> m ;
	prime();
	for(int i = 1 ; i <= m ; i ++){
		int x ;
		cin >> x ;
		cout << p[x] << "\n";
		continue ;
	}
	return 0 ;
}
2024/6/15 17:16
加载中...