| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 754 人关注过本帖
标题:[求助]求两道编程题的的答案,先谢罗!!
只看楼主 加入收藏
shujustice
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-10-4
收藏
得分:0 

靠第二题考数列


问世间情为何物 直叫人生死相许
2007-10-22 22:28
summy
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-9-25
收藏
得分:0 

原来还可以这么简单!!!!


2007-10-22 22:32
yuwei5000
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-10-16
收藏
得分:0 
完全数
【定义】若一个自然数,恰好与除去它本身以外的一切因数的和相等,这种数叫做完全数。
例如,6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124
8128=1+2+4+8+16+32+64+127+254+508+1016+2032+4064
【疑难问题】(1)到底有多少完全数?寻找完全数并不是容易的事。经过不少数学家研究,到目前为止,一共找到了40多个完全数。(2)有没有奇完全数?奇怪的是,已发现的44个完全数都是偶数,会不会有奇完全数存在呢?如果存在,它必须大于10^120。
至今无人能回答这些问题。
【公式】大数学家欧几里德曾推算出完全数的获得公式:如果2^p-1质数,那么(2^p-1)2^(p-1)便是一个完全数。p=2,2^p-1=3是质数,(2^p-1)2^(p-1)=3X2=6p=3,2^p-1=7是质数,(2^p-1)2^(p-1)=7X4=28但是2^p-1什么条件下才是质数呢?
当2^p-1是质数的时候,称其为梅森素数!顾名思义,就是梅森第一个系统地研究这种形式的素数的!事实上,至今为止,人类只发现了43个梅森素数,也就是只发现了43个完全数!

2007-10-22 22:36
TLZL
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-10-18
收藏
得分:0 
挺简单的  好好想想吧

2007-10-22 22:43
DaTun
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-10-19
收藏
得分:0 

问一下:
第一个题目是不是给错了,按这样说6也应该是因子
如果是质因数则不应该包括1

2007-10-22 22:46
yuwei5000
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-10-16
收藏
得分:0 

我是用 c# 写的

[CODE]using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int s = 0;
for (int i = 1; i <= 1000;i++ )
{
s = 0;
for (int j = 1; j < i; j++)
{
if(i%j==0)
{
s = s + j;
}
}
if(s==i)
{
Console.Write("{0,-5}", i);
}

}
Console.Read();
}
}
}[/CODE]

那是第一题的

2007-10-23 22:35
yuwei5000
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-10-16
收藏
得分:0 

这是第二题的

[CODE]using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
double a = 1, b = 2;
double s = 0;
for (int i = 1; i <= 20; i++)
{
s =s+ b / a;
double temp;
temp = a + b;
a = b;
b = temp;
}
Console.WriteLine(s);
Console.Read();
}
}
}[/CODE]


2007-10-23 22:37
yuwei5000
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-10-16
收藏
得分:0 
回复:(DaTun)问一下:第一个题目是不是给错了,按这...
不是的,虽然 6 是因子,但是除去 它本身
2007-10-23 22:39
dodober
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-10-23
收藏
得分:0 

我比较笨啦,写了第一个题目,并且比较长,不好意思了,不过运行正确。
#include <stdio.h>
#include <stdlib.h>
#define STACK_INIT_SIZE 10
#define STACKINCREMENT 10
typedef struct
{
int *base;
int *top;
int sizeofstack;
}SqStack;
int push(SqStack &s,int i)
{
if(s.top - s.base>=s.sizeofstack )
{
s.base = (int *)realloc(s.base, (s.sizeofstack+STACKINCREMENT) * sizeof(int));
if(!s.base)
exit(0);
s.top=s.base +s.sizeofstack;
s.sizeofstack+=STACKINCREMENT;
}
*s.top=i;
s.top++;
return 1;
}
int pop(SqStack &l,int &e)
{
if(l.base==l.top)
return 0;
l.top--;
e=*l.top;

return 1;

}
int InitStack(SqStack &l)
{
l.base =(int *)malloc(STACK_INIT_SIZE*sizeof(int));
if(!l.base)
exit(0);
l.top =l.base ;
l.sizeofstack=STACK_INIT_SIZE;
return 1;
}
void main()
{
SqStack l;
int temp=0;
int e=0;
InitStack(l);
for(int i=1;i<10001;i++)
{
for(int j=1;j<=i/2;j++)
{
if(i%j==0)
{
push(l,j);
}
}
while(l.base!=l.top)
{
if(pop(l,e))
temp+=e;
}
if (i==temp)
printf("%d ",i);
temp=0;
}
}

2007-10-24 10:52
hczsea
Rank: 2
等 级:论坛游民
帖 子:129
专家分:68
注 册:2007-10-23
收藏
得分:0 
for (itemp=1; itemp<1000; itemp++)
{
ktemp = 0;
for (jtemp=1; jtemp<itemp; jtemp++)
{
if ((itemp%jtemp) == 0)
arr[ktemp++] = jtemp;
}
sum = 0;
for (ltemp=0; ltemp<ktemp; ltemp++)
{
sum += arr[ltemp];
}
if (sum == itemp)
printf(itemp);
}

这样可以吗
2007-10-24 11:06
快速回复:[求助]求两道编程题的的答案,先谢罗!!
数据加载中...
 
   



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

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