需要两个办法,100以内找出质数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要两个办法,100以内找出质数?相关的知识,希望对你有一定的参考价值。

方法一:从2到100,对每个数依次判断是否为质数,对任意数n,依次除以从2、3、4、...、直到sqrt(n)向后取整;以31为例,sqrt(31)=5.56776....,所以对31除以2、3、4、5、6,结果发现都无法整除,所以31为质数;依次可以得到所有质数。

方法二:从另一个角度出发,找出所有的合数,剩下的就是质数了。具体就是类似九九乘法表列出2~100中所有元素相互乘积,如
2*2、2*3、2*4、2*5、...、2*49、2*50 再往后就超过100了,换3继续
3*3、3*4、3*5、...、3*32、3*33 再往后就超过100了,换4继续
4*4、4*5、...、4*24、4*25 以此类推
... ...
8*8、8*9、8*10、8*11、8*12
9*9、9*10、9*11
10*10
至此,已将所有100以内的合数找出(有重复),只要剔除这些数,剩下的就都是质数啦。
参考技术A

#include<stdio.h>

int isprime(int n)

for(int i=2;i*i<=n;i++)

   if(n%i==0)return 0;

 return n>1;  

int main()

int i;

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

  if(isprime(i))

    printf("%4d",i);

  return 0;

================

#include<stdio.h>

int main()

int i,j;

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

  for(j=2; j*j<=i; j++)

      if(i%j==0)break;

    if(j*j>i)

      printf("%4d",i);

 

  return 0;

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以内的质数

老师布置的作业

不会弄

以上是关于需要两个办法,100以内找出质数?的主要内容,如果未能解决你的问题,请参考以下文章

python-找出100以内的质数

求50到100以内的质数

100以内的质数

100以内的质数

Java求100以内的质数的四种方法

100以内的质数