您的位置:首页 > 编程语言 > C语言/C++

C++练习之 素数系列(判断单个数是否为素数,输出一定范围的素数,循环判断素数)

2012-12-04 15:22 441 查看
素数定义为 一个数从除以2到次数开方的值均无法整除则此数为素数。

 

①判断是否为素数:

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

 int m,k,i;

 bool prime;

 cin>>m;

 prime=true;

 k=int(sqrt(m));

 for(i=2;i<=k;i++)

 {

  if(m%i==0)

  {

   prime=false;

   break;

  }

 }

 if(prime)

  cout<<m<<"是素数。"<<endl;

 else

  cout<<m<<"不是素数。"<<endl;

 return 0;

}

 

②输出一定范围内的素数:

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

 int a,b,m,k,i,n=0;

 bool prime;

 cout<<"请输入所求范围:";

 cin>>a>>b;

 cout<<a<<'~'<<b<<"素数有:"<<endl;

    for(m=a;m<=b;m++)

 {

  prime=true;

  k=int(sqrt(m));

  for(i=2;i<=k;i++)

  {

   if(m%i==0)

   {

    prime=false;

    break;

   }

  }

  if(prime)

  {

   cout<<m<<" ";

   n+=1;

  }

  if(n%10==0)

   cout<<endl;

 }

 cout<<endl;

 return 0;

}

 

③ 循环判断素数:

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

 int m,k,i;

 bool prime;

 char ch='Y';

 while(ch=='Y'||ch=='y')

 {

  cout<<"请输入一个数:";

  cin>>m;

  prime=true;

  k=int(sqrt(m));

  for(i=2;i<=k;i++)

  {

   if(m%i==0)

   {

    prime=false;

    break;

   }

  }

  if(prime)

   cout<<m<<"是一个素数"<<endl;

  else

   cout<<m<<"不是一个素数"<<endl;

  cout<<"是否继续判断素数,是则输入Y(不区分大小写),退出则输入其他字符:";

  cin>>ch;

 }

 return 0;

}

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: