完美数

标签: 数学
691人阅读 评论(3) 收藏 举报
分类:
完美数:除了它本身外的约数的和恰好等于它本身

不完美数有两类:真因子的和大于它本身的数——盈数,小于的是亏数。

ecnu 1197 完美数
输入一个数字判断是盈数,亏数,还是完美数。
利用因子和公式解决。
(代码不知道正确不,进不了OJ)

#include <iostream>
#include <cstdio>
using namespace std;
typedef long long LL;
// rho = 连乘 (q^(n+1)-1)/(q-1)
int main()
{
    int n;
    while(cin>>n&&n){
        int t=n;
        LL ans=1;
        for(int i=2;i*i<=t;i++){
            if(t%i==0){
                LL r=1;
                while(t%i==0){
                    r=r*i;
                    t/=i;
                }
                ans=ans*(r*i-1)/(i-1);
                if(ans>2*n)  break;
            }
        }
        if(ans>2*n) {
             printf("1\n");
             continue;
        }
        if(t>1) {
            ans=ans*(1+t);
        }
        if(ans>2*n) printf("1\n");
        else if(ans==2*n) printf("0\n");
        else printf("-1\n");
    }
    return 0;
}

sdut 1220 完美数
输出一定范围内的完美数。
完美数是很少的。打表。

#include <iostream>
#include <cstdio>
using namespace std;
int num[10]={
6,
28,
496,
8128,
33550336,
};
int main()
{
    int a,b;
    while(cin>>a>>b&&(a+b)){
        int sta[10],top=0;
        for(int i=0;i<5;i++){
            if(num[i]<=b&&num[i]>=a){
                sta[top++]=num[i];
            }
        }
        if(top>0){
            for(int i=0;i<top-1;i++) printf("%d ",sta[i]);
            printf("%d\n",sta[top-1]);
        }
        else printf("No\n");
    }
    return 0;
}


查看评论

缔造PPT完美演示之路

-
  • 1970年01月01日 08:00

JAVA求解完美数

1、概念 首先我们理解一下,什么jiaoz
  • ljtyzhr
  • ljtyzhr
  • 2014-08-31 19:46:45
  • 1835

C语言完美数

完美数即是一个数的各个位数之和等于它本身。      题目描述 任何一个自然数的约数中都有1和它本身,我们把小于它本身的因数叫做这个自然数的真约数。 如6的所有真约数是1、2、3,...
  • sflsgfs
  • sflsgfs
  • 2011-08-15 14:28:42
  • 3174

完美数简介及算法分析

完美数简介 各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数。 例如:第一个完全数...
  • u011439689
  • u011439689
  • 2013-12-20 16:24:31
  • 2263

寻找完美数

所谓完美数,是指这样的一个数,它等于其真因子(不包括它本身)的和,例如6和28, 6=1+2+328=1+2+4+7+146=1+2+3\\28=1+2+4+7+14#include #inclu...
  • lanchunhui
  • lanchunhui
  • 2015-12-12 23:44:43
  • 612

1-100完美数

public static void main(String[] args) { for (int i = 2; i
  • AlanaLi
  • AlanaLi
  • 2015-04-25 19:01:01
  • 214

求完美数

一个数如果恰好等于它的因子之和,这个数就称为"完美数"或"完数"。例如6=1+2+3.(6的因子是1,2,3) 完美数的一些性质: 欧几里德证明了:一个偶数是完数,当且仅当它具有如下形式:2(p-1)...
  • redraiment
  • redraiment
  • 2008-07-10 20:06:00
  • 8739

C语言精髓-完美数

#include #include int IsPerfect(int x); int main() {     int m;     printf("Input m:");    ...
  • wuyijc
  • wuyijc
  • 2015-01-12 09:48:30
  • 1338

I00035 完美数(Perfect number)

笛卡尔说:“能找出的完美数是不会多的,好比人类一样,要找一个完美人亦非易事。” 数论中,若一个正整数除了本身之外所有因子之和正好等于此数自身,则称此数为完美数。完美数(Perfect Numbe...
  • tigerisland45
  • tigerisland45
  • 2016-08-28 20:51:58
  • 1108

c语言:根据输入的数,求其范围内的完美数。

#include int main() { int n=0,i=0,sum; int number; scanf("%d",&number); for (n = 2; n
  • samxiaoguai
  • samxiaoguai
  • 2017-11-20 22:48:31
  • 209
    个人资料
    持之以恒
    等级:
    访问量: 37万+
    积分: 9448
    排名: 2423
    我的链接
    最新评论