zoukankan      html  css  js  c++  java
  • 计蒜客--计算质数

       对于大于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;  
    }  
  • 相关阅读:
    1836Alignment
    JS日期格式化
    excle自编公式方法
    excle的公式说明
    小技巧之一 string[]合并
    Nunit的使用小问题
    Ajax中上传文件的方式
    VSS也有BUG?
    SQL Server中将时间型的转为yyyyMMddhhmmss
    给已经存在的PDF文件加水印
  • 原文地址:https://www.cnblogs.com/bmyell1234/p/5189019.html
Copyright © 2011-2022 走看看