| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2310 人关注过本帖
标题:[求助]编写一个程序求质数之和
只看楼主 加入收藏
虫的传人
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-3-5
收藏
 问题点数:0 回复次数:12 
[求助]编写一个程序求质数之和
例如F(7)=1+3+5+7+11+13+17=58


这是微软的一个题目,放来这里看看大家的算法如何
搜索更多相关主题的帖子: 质数 之和 编写 
2006-04-03 01:22
本人已死
Rank: 1
等 级:新手上路
威 望:1
帖 子:183
专家分:0
注 册:2005-9-20
收藏
得分:0 
楼主,我想问下什么是质数......

如果说1也是质数的话.....

那我只能继续潜水.....

.......



爸爸告诉我:女人喜欢有钱的男人;妈妈告诉我:女人喜欢有貌的男人。我翻翻钱包,又照照镜子,然后我哭了
2006-04-03 01:27
虫的传人
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用本人已死在2006-4-3 1:27:00的发言:
楼主,我想问下什么是质数......

如果说1也是质数的话.....

那我只能继续潜水.....

.......


er。。。。。。。。。。
是我搞错了,呵呵,我只是把问题的原文发了过来,没注意到是有错的
大家知道什么是质数就好,也知道我想得到一个什么答案就好,呵呵





好马不吃回头草 然而,我不是好马 可见,坏马也不吃回头草
2006-04-03 01:45
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

这个写得可能麻烦了,F(10000)得花5秒才可以算出来
[CODE]
#include "stdio.h"
#include "conio.h"
#include "math.h"
long Prime(long );
void main()
{
int count,j=1,k;
long i,sum=0;

scanf("%d",&count);
for(i=2;j<=count;i+=k)
if( Prime(i) )
{
sum+=Prime(i);
j++;
k= i==2?1:2;
}
printf("F(%d)=%ld\n",count,sum);
getch();
}

long Prime(long i)
{
long j;

j=sqrt(i);
while(j>=2&&i%j!=0)
j--;
return j<2 ? i : 0;
}
[/CODE]

[此贴子已经被作者于2006-4-3 5:51:34编辑过]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-04-03 05:41
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

1是质数


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-04-03 13:05
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
这是不可能的

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-04-03 13:08
本人已死
Rank: 1
等 级:新手上路
威 望:1
帖 子:183
专家分:0
注 册:2005-9-20
收藏
得分:0 
[CODE]
#include<stdio.h>
int IsPrime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0) return 0;
else continue;
return 1;
}
int Sum(int n)
{
int i,sum=2;
if(n<2)return 0;
else if(n==2)return 2;
else
{
for(i=3;i<=n;i+=2)
{
sum+=IsPrime(i)?i:0;
}
return sum;
}
}
main()
{
int n;
printf("输入一个最大数:\n");
scanf("%d",&n);
printf("比%d小的所有质数之和SUM=%d\n",n,Sum(n));
getchar();
}
[/CODE]



爸爸告诉我:女人喜欢有钱的男人;妈妈告诉我:女人喜欢有貌的男人。我翻翻钱包,又照照镜子,然后我哭了
2006-04-03 13:22
虫的传人
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用feng1256在2006-4-3 5:41:00的发言:

这个写得可能麻烦了,F(10000)得花5秒才可以算出来
[CODE]
#include "stdio.h"
#include "conio.h"
#include "math.h"
long Prime(long );
void main()
{
int count,j=1,k;
long i,sum=0;

scanf("%d",&count);
for(i=2;j<=count;i+=k)
if( Prime(i) )
{
sum+=Prime(i);
j++;
k= i==2?1:2;
}
printf("F(%d)=%ld\n",count,sum);
getch();
}

long Prime(long i)
{
long j;

j=sqrt(i);
while(j>=2&&i%j!=0)
j--;
return j<2 ? i : 0;
}
[/CODE]


哈哈,又见到版主大人了







好马不吃回头草 然而,我不是好马 可见,坏马也不吃回头草
2006-04-03 20:50
虫的传人
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用本人已死在2006-4-3 13:22:00的发言:
[CODE]
#include<stdio.h>
int IsPrime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0) return 0;
else continue;
return 1;
}
int Sum(int n)
{
int i,sum=2;
if(n<2)return 0;
else if(n==2)return 2;
else
{
for(i=3;i<=n;i+=2)
{
sum+=IsPrime(i)?i:0;
}
return sum;
}
}
main()
{
int n;
printf("输入一个最大数:\n");
scanf("%d",&n);
printf("比%d小的所有质数之和SUM=%d\n",n,Sum(n));
getchar();
}
[/CODE]


非常感激








好马不吃回头草 然而,我不是好马 可见,坏马也不吃回头草
2006-04-03 20:51
醉天使
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-4-6
收藏
得分:0 
其实只要检查到n的根号就行了,这样就可以使效率高一些

2006-04-06 09:27
快速回复:[求助]编写一个程序求质数之和
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015979 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved