首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

初学者C语音题目

2013-03-26 
菜鸟求一个C语音题目输出1到1000的素数并且求出它们的和~~~~[解决办法]#includestdio.hint main(){ int

菜鸟求一个C语音题目
输出1到1000的素数并且求出它们的和~~~~
[解决办法]
#include<stdio.h>
int main()
{
 int i,j,count=0,sum=0;
 for(i=1;i<=1000;i++)
 {
  for(j=2;j<i;j++)
  {
   if(i%j==0) break;  
  }
  if(j>=i) 
  {
   count++;
   sum+=i;
   printf("%d ",i);
    }
  
 }
 printf("sum=%d",sum);
 return 0;

[解决办法]
这题没什么难度,在下用顺序表来优化下,典型的空间换时间,呵呵:


#include<stdio.h>
#include<math.h>

int main()
{
int count=1,list[500],flag,sum=0;
register int i,j;

list[0]=2;

for(i=3;i<1000;i+=2)
{
flag=1;

for(j=0;j<count&&list[j]<sqrt(i)+1;j++)
if(!(i%list[j]))
{
flag=0;
break;
}

if(flag)
list[count++]=i;
}

printf("小于1000的素数:\n");

// 升序输出
/*for(i=0;i<count;i++)
{
printf("%d\t",list[i]);
sum+=list[i];
}*/

// 降序输出
while(count>0)
{
printf("%d\t",list[--count]);
sum+=list[count];
}

printf("\nsum=%d\n",sum);

return(0);
}

热点排行