筛选法的C语言实现筛选法程序步骤

筛选法的C语言实现筛选法程序步骤,第1张

先解释一下筛选法的步骤:

<1>先将1挖掉(因为1不是素数)。

<2>用2去除它后面的各个数,把能被2整除的数挖掉,即把2的倍数挖掉。

<3>用3去除它后面的各数,把3的倍数挖掉。

<4>分别用5…各数作为除数去除这些数以后的各数。

上述 *** 作需要一个很大的容器去装载所有数的集合,只要满足上述条件,即2的倍数大于1的全部置0,3的倍数大于1的全部置0,丛或旅4的倍数大于1的全部置0.。。渗凳。一团携直到这个数据集合的末尾,这样一来不为0的数就是素数了,然后按下标在里面进行查找就好了

源代码如下:

#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

}

素数。在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中敬消有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。

用筛选法求100以内的素侍稿圆数的老塌源代码如下

#include "stdio.h"

#include "stdlib.h"

main()

{

int i,j

for(i=2i<99i++)

{

for(j=2j<ij++)

{

if(i%j==0)

{

break

}

if(j==i-1)

{

printf("%4d",i)

}

扩展资料

求100以内的巧数的源代码如下

#include<bits/stdc++.h>

using namespace std

int sum(int n)

{

return (n/10%10+n%10)+((n/10%10)*(n%10))

}

int main(){

int n=100

for(int i=10i<=ni++)

{

if(sum(i)==i) cout<<i<<endl

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12484357.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存