| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 387 人关注过本帖
标题:大侠们帮忙该一下错!!!!谢谢
取消只看楼主 加入收藏
gudong091
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-4-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
大侠们帮忙该一下错!!!!谢谢
下面的程序用筛选法求1~100以内的素数。所谓筛选,可以这么理解,将所有的数排成一排,然后从2开始,将2的所有的倍数都划去,那么剩下的数就没有2的倍数了。然后在剩下的数中第1个数3的所有的倍数划去,那么剩下的数中既没有2的倍数,也没有3的倍数了。这样依次类推,在某次扫描中,在剩下的数列中设第一个为n,那么这个n一定不是比n小的任意一个素数的倍数,那么这个n一定就是素数。程序使用一个具有100个素数的数组,规定用1表示这个数没有被划去,用0表示这个被划去了。程序首先给这个100个元素初始化,然后使用筛选法生成素数元素,最后将这些素数输出。注意到如果定义数组下标为100,那么最大可用元素只有c[99],所以这里定义到101
#include<stdio.h>
void main()
{
int a,b,c[101];
c=0,0,1;
for(a=2;a<100;a++)
if(c[a]!=0)
for(b=1;b<101;b++)
if(b%a==0)
c[b]=0;
for(a=1;a<101;a++)
if(c[a]!=0)
printf("%d\t",c[a]);
}
下列给定程序中,函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数。要求:不得增行或删行,也不得更改程序结构。
#include<stdio.h>
#include<math.h>
void fun(int a)
{
int i,j,d,y;
for(i=3;i<=a/2;i=i+2)
{y=0;
for(j=1;j<=sqrt((double)i);j++)
if(i%j==0) y=0;
if(y==1)
{ d=i-a;
for(j=1;j<=sqrt((double)d);j++)
if(d%j==0) y=0;
if(y==1)
printf("%d=%d+%d\n",a,i,d);
}
}
}
void main()
{
int n;
do{
printf("\n input n:");
scanf("%d",&n);
}while(n%2==0);
fun(n);
}
搜索更多相关主题的帖子: 元素 
2010-04-12 22:21
gudong091
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-4-7
收藏
得分:0 
回复 2楼 一口三个汉堡
大侠啊!
那里面有个a<6是什么意思啊???
2010-04-13 11:24
gudong091
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-4-7
收藏
得分:0 
回复 4楼 一口三个汉堡
恩,辛苦了啊!!
虽然还是不是很懂!
但是答案确实是对的,
恩,
谢啦哈!!!
2010-04-13 17:31
gudong091
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-4-7
收藏
得分:0 
回复 4楼 一口三个汉堡
不对啊!
刚才又仔细看了一下
好像还少了几个数啊
2啊,7啊的都没有啊!
2010-04-13 18:17
快速回复:大侠们帮忙该一下错!!!!谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027797 second(s), 8 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved