欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

素数判定——哈工大

程序员文章站 2023-12-21 14:06:46
...

题目描述

素数判定——哈工大

知识点

素数判定

结果

素数判定——哈工大

实现

码前思考

  1. 这是属于判断一个数是否为素数的题目,使用时间复杂度位O(N)O(\sqrt N)的模板。

代码实现

#include "bits/stdc++.h"
using namespace std;

bool isPrime(int num){
	if(num <= 1){
		return false;
	}else{
		int sqr = (int) sqrt(1.0*num);
		for(int i=2;i<=sqr;i++){
			if(num%i == 0){
				return false;
			}
		}
		return true;
	}
}

int main(){
	int num;
	while(~(scanf("%d",&num))){
		if(isPrime(num)){
			printf("yes\n");
		}else{
			printf("no\n");
		}
	} 
	return 0;
}

码后反思

  1. 为了保险起见,我们的sqr = (int) sqrt(1.0*num) + 1是比较好的,《王道》上面说这样是为了防止double值带来的精度的损失,所以宁愿多枚举一个数也不能少枚举一个数。
  2. 加油????
相关标签: # 数学问题

上一篇:

下一篇: