用穷举法找出1~100之间的质数

本文分别利用C++语言中的while循环、do-while循环以及for循环实现了1~100之间质数的输出。

使用while循环语句

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
 int i,j,k,flag;
 i = 2;
 while(i<=100)
 {
  flag = 1;
  k = sqrt(i);
  j = 2;
  while(j<k)
  {
   if(i%j==0)
   {
    flag = 0;
    break;
   }
   j++;
  }
  if(flag)
   cout<<i<<"是质数."<<endl;
  i++;
 }
 return 0;
}

思想:利用flag变量记录所循环的数字是否为质数,利用变量i记录所判断的数字,判断j是否为i的因子,j只需跑遍2~ i \sqrt i i 即可。

使用do-while循环语句

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
 cout<<"2是质数."<<endl;
 int i,j,k,flag;
 i = 3;
 do
 {
  flag = 1;
  k = sqrt(i);
  j = 2;
  do
  {
      if(i%j==0)
   {
    flag = 0;
    break;
   }
   j++;
  }while(j<=k);
  if(flag)
   cout<<i<<"是质数."<<endl;
  i++;
 }while(i<=100);
 return 0;
}

思想同上。其中do-while与while不同之处是:while语句在进入循环体前要先对循环条件进行判断;而do-while语句先进入循环体,后对循环条件进行判断。

使用for循环语句

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
 int i,j,k,flag;
 for(i = 2;i<=100;i++)
 {
  k = sqrt(i);
  for(j = 2;j<=k;j++)
  {
   if(i%j==0)
   {
    flag = 0;
    break;
   }
   flag = 1;
  }
  if(flag)
  {
   cout<<i<<"是质数."<<endl;
  }
 }
 return 0;
}

思想同上。
最后输出的结果如下图:
输出结果

本文不再将循环范围用变量表示,若需要找其他范围内的质数,只需改变循环范围即可。

  • 10
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值