本文主要是介绍题目1044: 素数判定,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。
输入
测试数据有多组,每组输入一个数n。
输出
对于每组输入,若是素数则输出yes,否则输入no。
样例输入
13
样例输出
yes
提示 [+]
*** 提示已隐藏,点击上方 [+] 可显示 ***
来源
2009年哈尔滨工业大学计算机研究生机试真题
/*********************************
* 日期:2013-3-19
* 作者:SJF0115
* 题号: 题目1044: 素数判定
* 来源:http://ac.jobdu.com/problem.php?pid=1044
* 结果:AC
* 来源:
* 总结:
**********************************/
#include<stdio.h>
#include<math.h>
//判断是否是一个素数
int IsPrime(int a){//0,1,负数都是非素数if(a <= 1){return 0;}//计算枚举上界,为防止double值带来的精度损失,所以采用根号值取整后再加1,即宁愿多枚举一个,也不愿少枚举一个数int bound = (int)sqrt(a) + 1;for(int i = 2;i < bound;i++){//依次枚举这些数能否整除x,若能则必不是素数if(a % i == 0){return 0;}}return 1;
}int main (){int a;while(scanf("%d",&a) != EOF){if(IsPrime(a) == 0){printf("no\n");}else{printf("yes\n");}}//whilereturn 0;
}
这篇关于题目1044: 素数判定的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!