您的位置:首页 > 其它

计蒜客--计算质数

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

我的解法

#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: