求助大神,为什么会RE呢
查看原帖
求助大神,为什么会RE呢
919435
Dylan_66楼主2023/2/2 12:07
#include <bits/stdc++.h>

using namespace std;

bool isPrime[100000010];
int Prime[6000010];
int cnt = 0;

void getPrime(int n){
	memset(isPrime , 1 , sizeof(isPrime));
	isPrime[1] = 0;
	for(int i = 2; i <= n;i++){
		if(isPrime[i] != 0){
			Prime[++cnt] = i;
		}
		for(int j = 1; j <= cnt && i * Prime[j] <= n ; j++){
			isPrime[i * Prime[j]] = 0;
			if(i % Prime[j] == 0){
				break;
			} 
		}
	}
}

int main(){
	int n;
	scanf("%d" , &n);
	getPrime(n);
	int temp =1;
	for(int i = 1 ; i <= n; i++){
		for(int j = 1 ; j <= n ;j++){
			if(Prime[i] * Prime[j] == n){
				if(Prime[i] > Prime[j] && Prime[i] > temp){
					temp = Prime[i];
				}else if(Prime[i] < Prime[j] && Prime[j] > temp){
					temp = Prime[j];
				}
			}
		}
	}
	printf("%d", temp);
	
	return 0;
} 
2023/2/2 12:07
加载中...