一、定義及性質:
1.定義:完全數也叫完美數,它是指一個數的所有真因子(不包括它自己)之和等于它本身。例如:6=1*6=2*3,其真因子有:1 ,2 ,3,且1 2 3=6;28=1*28=2*14=4*7,其真因子有:1,2 ,4,7,14,而且1 2 4 7 14=28;496=1*496=2*248=4*124=8*62=16*31,其真因子有:1,2,4,8,16,31,62,124,248而且1 2 4 8 16 31 62 124 248=496;8128=1*8128=2*4064=4*2032=8*1016=16*508=32*254=64*127,其真因子有:1,2,4,8,16,32,64,127,254,508,1016,2032而且1 2 4 8 16 32 64 127 254 508 1016 2032 4064=8128.
在古希臘時代人們就發現了4個完全數:6,28,496,8128,它們之間相差不大,但是直到15世紀人們才發現了第五個完全數33550336,和前面相差竟然如此遙遠。到16世紀才發現了第6 7 8号完全數:8589869056,137438691328,230584300813995218,再到19世紀才找到了第9個完全數2658455991569831744654692615953842176.
2.性質:
1)完全數的所有因子(包括它本身)的倒數和都等于2,例如:對6有:1/1 1/2 1/3 1/6=2;對28有:1/1 1/2 1/4 1/7 1/14 1/28=2;對496有:1/1 1/2 1/4 1/8 1/16 1/31 1/62 1/124 1/248 1/496=2;……
2)完全數都可以寫成自然數的和的形式,例如:6=1 2 3;28=1 2 3 4 5 6 7;496=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31;……
二、用C語言尋找完全數程序運行結果如下:
三、用C語言尋找完全數的程序如下:
//找完全數及其真因子
#include <stdio.h>
int main ()
{ long i,j,m,n,b; //定義長整數i,j,m,n,b
printf("請輸入整數範圍[m,n] (m n之間用空格隔開):");scanf("%d %d",&m,&n);
for(i=m;i<n;i ) //i為被檢驗數
{ b=i; //先把被檢驗數i賦給b
for(j=1;j<i;j ) //j為因數
{ if(i%j==0) b-=j; //若j是i的因數則,被檢驗數-因數
}
if(b==0)
{ printf("\n%d 是完全數,其真因子有:",i);//若被檢驗數=全部因數的和則是完全數
b=i; //先把被檢驗數i賦給b
for(j=1;j<i;j ) //j為因數
{ if(i%j==0) printf("%d ",j); //若j是i的因數則輸出
}
}
}
}
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!