C++教材第二章课后习题 2-27

发布时间 2023-04-12 16:04:01作者: 新晋软工小白

用穷举法找出1~100的质数并显示出来,分别用while,do...while,for循环语句实现

 1 #include <iostream>                 //for循环语句的实现 
 2 #include <cmath>
 3 using namespace std;
 4 int main() 
 5 {
 6     int i,k,m;
 7     for(k=2;k<=100;k++)             //从2~100进行100次的循环 
 8     {
 9         m=sqrt(k);                 //只需要看是否能存在从2到根号下m的数,让整除 
10         int flag=1;                //先将flag给与真值 
11         for(i=2;i<=m;i++)           //从2到根号下m 
12         {
13             if(k%i==0)             //开始判断 
14             {
15                 flag=0;            //如果说存在,将flag赋予假值,并跳出循环 
16                 break;
17             }
18         }
19         if(flag)                  //如果为假,不执行;如果为真,执行输出语句 
20         {
21             cout<<k<<"是质数"<<endl; 
22         }
23     }
24 }
 1 #include <iostream>                 //do...while循环语句的实现 
 2 #include <cmath>
 3 using namespace std;
 4 int main() 
 5 {
 6     int i,k,m;
 7     k=2;
 8     do
 9     {
10         m=sqrt(k);
11         int flag=1;
12         i=2;
13         do
14         {
15             if(k%i==0)
16             {
17                 flag=0;
18                 break;
19             }
20             i++;
21         }while(i<=m);
22         if(flag)                  
23         {
24             cout<<k<<"是质数"<<endl; 
25         }
26         k++;
27     }while(k<=100);
28 }
#include <iostream>                 //while循环语句的实现 
#include <cmath>
using namespace std;
int main() 
{
    int i,j,k,flag;
    i=2;
    while(i<=100)
    {
        k=sqrt(i);
        flag=1;
        j=2;
        while(j<=k)
        {
            if(i%j==0)
            {
                flag=0;
                break;
            }
            j++;
        };
        if(flag)
        {
            cout<<i<<"是质数"<<endl;
        }
        i++;
    };
}