判断一个数是否为素数

#include<stdio.h>
#include<math.h>
int isSu(int x) {
	int i;
	int len;
	if(x<=1) return 0;
//	(int)sqrt(x)+1 注意这里要先强制转换为int,否则double
//  转换成int,由高类型向低类型转化会发生错误。
//  计算枚举的上届,为防止double值带来的精度损失,所以采取根号值取整
//  之后再加1,宁愿多枚举一个数字,也不能漏掉
	len = (int)sqrt(x)+1;
	for(i=2;i<len;i++) {   
		if(x%i==0) return 0;
	}
	return 1;
}

int main() {
	int n;
	while(scanf("%d",&n)!=-1) {
		if(isSu(n))
			puts("yes");
		else 
			puts("no");
	}

	return 0;
}

  

判断一个数是否为素数

posted @ 2013-03-11 21:50  msober  阅读(268)  评论(0编辑  收藏  举报