今天开始了一些复习(准备比赛),复习的过程中发现素数还是挺重要的,许多题目都能够用到它。也想起了关于判断素数的方法,下面跟大家介绍一下。
首先这一种呢,应该是大家都会的吧~可以用函数做,调用起来方便一些。但是也不知道看我的博客的童鞋知不知道函数(应该知道吧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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。