zoukankan      html  css  js  c++  java
  • 【技巧】关于素数

    今天开始了一些复习(准备比赛),复习的过程中发现素数还是挺重要的,许多题目都能够用到它。也想起了关于判断素数的方法,下面跟大家介绍一下。

    首先这一种呢,应该是大家都会的吧~可以用函数做,调用起来方便一些。但是也不知道看我的博客的童鞋知不知道函数(应该知道吧233)

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int main()
    {
        int n,flag=1;//flag为1表示不是素数,为0表示是素数
        cin>>n;
        if (n<=1)
        {
            cout<<"NO"<<endl;
            return 0;
        }
        for (int i=2;i<=sqrt(n);i++)
        {
            if (n%i==0)
            {
                flag=0;
                break;
            }
        } 
        if (flag==0)
            cout<<"NO"<<endl;
        else
            cout<<"YES"<<endl;
        return 0;
    } 

    那么,在这种方法的基础上,我们能不能考虑做一些优化呢?

    其实是可以的。素数(也就是质数)有什么特征呢?最重要的就是它们都不是偶数吧。所以,我们可以先加上一条判断奇偶数的语句。这样的话可以减少一些判断吧?

    这个代码就不放出来了,希望大家可以自己考虑,然后尝试着做一下。如果有错误,可以发给我大家一起讨论呐~

    作者:暄妍

    我的博客:http://www.cnblogs.com/zbyrainbow/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    省选知识点
    寒假练习
    水题欢乐赛-套路
    2019年12月(2)
    洛谷P1347 排序
    Aizu
    2019年12月(1)
    【CSP2019】
    联系博主
    UVA1420 Priest John's Busiest Day【贪心】
  • 原文地址:https://www.cnblogs.com/zbyrainbow/p/8490295.html
Copyright © 2011-2022 走看看