c语言使用循环找出100之内的所有质数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言使用循环找出100之内的所有质数相关的知识,希望对你有一定的参考价值。

c语言使用循环找出100之内的所有质数c语言使用循环找出100之内的所有质数

#include "stdio.h"
#define N 100
int main()

    int i,j;
    int flag;
    printf("100 以内的质数有:\\n");
    for(i=2;i<101;i++)
    
        flag = 1;
        for(j=2;j<=i/2;j++)
            if(i%j==0)
            
                flag = 0;
                break;
            
       if(flag)
           printf("%d ",i);
    
    printf("\\n打印完毕\\n");
    return 0;

追问

没有1呢?

质数还有1

参考技术A 什么追问

就是使用二重循环或者一重循环找出100以内的质数

老师布置的作业

不会弄

用穷举法找出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;

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

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

以上是关于c语言使用循环找出100之内的所有质数的主要内容,如果未能解决你的问题,请参考以下文章

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

编写一个程序,输出1~1000之内所有的素数(注意:素数即质数)及个数(C语言)

输出50到100所有质数的c语言编程

c语言:编程找出1000之内的所有完数。

c++语言 寻找完全数 【循环】

c语言编程题 找出所有的水仙花数,水仙花数是指一个3位数