素数的定义:
素数(prime number)又称质数,有无限个。
素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为素数。
问题:
给出一个正整数(n>0),怎么判断是否为素数?
问题分析:
先考虑特殊情况,如果n=1或者n=2,我们很容易根据定义得出1不是素数,2是素数。
然后考虑n>=3的情况,如果对于2~(n-1)之间的每一个整数,n都不可以整除,那么根据定义这就能保证这是一个素数。
这里可以用for循环一个一个来检查2~(n-1),如果遇到可以整除就用(break;)语句跳出for循环,那么证明这个数不是素数。
如果一直到检查到最后一个,仍然没有被整除,那么它就是一个素数。
解决方案(c++):
#include "stdafx.h"
#include "iostream"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{ int m,n;
cin>>n;
if(n==1) //首先考虑特殊情况。
cout<<n<<"不是素数"<<endl;
if(n==2)
cout<<n<<"是素数"<<endl;
for(m=2;m<n;m++) //用for循环一个一个检查2-(n-1)是否都能被n整除。
{
if(n%m==0) //但凡有一个可以被整除的,就证明它不是素数,就可以结束for循环。
{
cout<<n<<"不是素数"<<endl;
break;
}
if(m==n-1) //如果检查到最后一个(n-1),仍然没有被n整除,那么这是个素数。
cout<<n<<"是素数"<<endl;
}
system("pause");
return 0;
}