计蒜客--计算质数
2016-02-14 14:27
204 查看
对于大于1的数,如果除了1和它本身,它不能再被其它正整数整除,那么我们说它是一个质数。晓萌想判断一个数是不是质数,希望找你写个程序,帮助她进行判断。+输入包括一行,为一个整数N(1+<+N+≤1000),正是晓萌给出你让你判断的数字。+输出包括一行,如果晓萌给出的整数N为质数,那么输出YES;如果N不是质数,那么输出NO。+样例1+输入:+3+输出:+YES&oq=对于大于1的数,如果除了1和它本身,它不能再被其它正整数整除,那么我们说它是一个质数。晓萌想判断一个数是不是质数,希望找你写个程序,帮助她进行判断。++输入包括一行,为一个整数N(1+<+N+≤1000),正是晓萌给出你让你判断的数字。++输出包括一行,如果晓萌给出的整数N为质数,那么输出YES;如果N不是质数,那么输出NO。
样例1
输入:
3
输出:
YES
我的解法
作者本人的解法
样例1
输入:
3
输出:
YES
我的解法
#include <iostream> #include <cmath> using namespace std; int main() { int N,K; bool flag; while ( cin>>N && (N!=1) && (N<1000) ) { flag = false; K =sqrt(N); for (int i = 2; i <= K; ++i)//这一步我的计算量比作者的大 { if (N%i ==0 ) { cout<<"NO"<<endl; flag = true; break;/* code */ } } if (flag == false/* condition */) { cout<<"YES"<<endl; } //cout<<K<<endl; } return 0; }
作者本人的解法
#include "stdio.h" #include "math.h" int main(){ int Num, i; scanf("%d", &Num); if (Num == 2){ printf("YES"); return 0; } if (Num % 2 == 0){ //先判断是否为偶数,若偶数就直接输出NO并结束程序 printf("NO"); return 0; //在主程序main()中使用return 0可以直接结束程序 } //从3开始,到Num的算术平方根结束,步进为2 for (i = 3; i <= sqrt(Num); i += 2) if (Num % i == 0){ printf("NO"); return 0; } printf("YES"); return 0; }
相关文章推荐
- 理解java中的深复制和浅复制
- 【信息资源管理】----各章通读,重点标记。
- luabinding 中用Scrollview实现pageview的翻页效果
- Ubuntu15.10 执行sdptool add A2SNK没任何提示
- linux下安装jdk和tomcat
- 理解并行编程
- 什么是debug模式,,release模式?
- 积跬步,聚小流------come on,我的2016
- mac osx 和windows 时间不同步解决方法
- I/O 和 内存映射文件
- Qt For Android 之启动页
- (转)[SQL Server] 动态sql给变量赋值(或返回值给变量)
- 深度解析RARP协议
- PHP学习之Apache修改默认站点的目录
- android:Activity启动模式之singleInstance
- Longest Palindromic Substring
- Qt For Android 引导页
- RHCE 学习笔记(21) - SELinux
- 有状态的EJB对象和无状态的EJB对象
- Toolbar自定义布局