先解释一下筛选法的步骤:
<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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)