首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

标题1044: 素数判定

2013-03-22 
题目1044: 素数判定题目描述给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。 输入测试数据有多组,

题目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");}    }//while    return 0;}


热点排行