#include<stdio.h>

using namespace std;

bool is_prime(long long a){
	
	if(a % 2 == 0 && a != 2 || a % 5 == 0 && a != 5 || a <= 1){
		
		return false;
	}
	
	for(long long i = 3; i * i <= a; i += 2){
		
		if(a % i == 0){
			
			return false;
		}
	}
	
	return true;
}

int main()
{
	
	long long a;
	scanf("%lld",&a);
	
	if(is_prime(a) == true){
		
		printf("Yes");
		
		return 0;
	}
	
	printf("No");
	
	return 0;
}

判断真的很快

2 comments

  • @ 2024-8-29 11:58:14

    为了判断负数(提高通用性) 我开的都是long long而不是unsigned long long 虽然一般不会判断负数是不是质数

    • @ 2024-8-29 11:54:18

      上面那个函数真挺实用的 以后判断质数我都这么写了

      • 1