一个质数。在大于1的自然数谈塌中,除1和100整数本身外,不能被任何其他自然数整除的次数。素数在数论中起着重要的作用。
大于余笑1但没有质数通道的数称为合数。1和0既不是质数也不是合数。
通过滤波法得到的100以内质数的源代码如下:
#include"stdio.h"
main()
main()
{
IntI,j。
对于(I = 2我<99我+ +)
{
对于(j = 2<我J + +)
{
If(I%j==0)
{
打破;
}
如果(j==I-1)
{
Printf(“%4d”,I);
}
扩展资料:
100以内的数字代码如下
包含<bits/stdc++。H >
使用命名空间性病。
Intthesum(Intn)
{
返回(n/10+含毁圆n%10%)+(10)(n/10%*(n%10));
}
Intmain(){
Intn=100;
For (int I = 10I <= n我+ +)
{
If (sum (I) = = I) cout <<I <<endl
}
返回0;
}
筛法求素数的方法如下:
用筛法求素数的基本思想是:把从2到N的一组正整数从小到大按顺序排列。从中依次删除2的倍数、3的倍数、5的倍数,直到根号N的倍数为止,剩余的即为2~N之间的所有素数。如有:
2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
去掉2的渣举倍数(不包括2),余下的数是:
3 5 7 9 11 13 15 17 19 21 23 25 27 29
剩下的数中3最小,去掉3的倍数,如此下去直到所有的数都被筛完,求出的素数为:
2 3 5 7 11 13 17 19 23 29
筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。段穗2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。
3后面第一个没划去的数是5,把5留下,如燃碧再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂蜡的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后。
这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼筛”,简称“筛法”。(另一种解释是当时的数写在纸草上,每要划去一个数,就把这个数挖去,寻求质数的工作完毕后,这许多小洞就像一个筛子。)
源代码如下:
#include <stdio.h>
#include <math.h>
int main()
{
int a, b, i, flag
printf("输入两个整数: "毁友)
scanf("%d %d", &a, &b)
printf("%d与%d之间的素数为: ", a, b)
while(a<b)
{
flag=0
for(i=2i<=sqrt(a)i++)
{
if(a%i==0)
{
flag=1
break
}
}
if(flag==0)
printf("%d ", a)
a++
}
return 0
}
扩展资料
一个偶数总能表示为两行哗个素数之和的源代码如下:档余行
#include "stdio.h"
#include "math.h"
main()
{
int a,b,c,d
scanf("%d",&a)
for(b=3b<=a/2b+=2)
{
for(c=2c<=sqrt(b)c++)
if(b%c==0) break
if(c>sqrt(b))
d=a-b
else
break
for(c=2c<=sqrt(d)c++)
if(d%c==0)
break
if(c>sqrt(d))
printf("%d=%d+%d\n",a,b,d)
}
}
for(int i=5i<=sqrt(x)i+=6)
if(x%i==0||x%(i+2)==0)
{
printf("%d不是素数",x)
return 0
}
printf("%d是素数",x)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)