需要两个办法,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以内找出质数?的主要内容,如果未能解决你的问题,请参考以下文章