目录:
- 什么是完数
- 判断一个完数
- 求范围内完数
一、什么是完数
定义:完全数(完数)Perfect number
如果一个数恰好等于它的因子之和,则称该数为“完全数”。
第一个完全数是
6=1+2+3
第二个完全数是
28=1+2+4+7+14
第三个完全数是
496=1+2+4+8+16+31+62+124+248
后面还有:8128、………
二、判断一个完数
程序…………………………
#include<stdio.h> int main() {
int n,i,sum=0; printf("请输入一个正整数:"); scanf("%d",&n); for(i=1;i<n;i++) {
if(n%i==0) sum=sum+i; //因子累加 } if(sum==n) printf("%d是一个完数\n",n); else printf("%d不是一个完数\n",n); return 0; }
讯享网
运行结果……………………

讯享网

三、求范围内完数
问题:
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,而 6=1+2+3,因此6是完数。输出1000之内所有完数……
程序1…………………………
讯享网#include<stdio.h> int main() {
int n,i,sum; printf("输出1000以内所有的“完数”:\n\n"); for(n=2;n<1000;n++) //从2开始判断 {
sum=0; for(i=1;i<n;i++) {
if(n%i==0) sum+=i; //因子累加 } if(sum==n) printf("%d 是一个完数\n",n); } return 0; }
运行结果…………………………

程序2…………………………

//一个数如果恰好等于它的因子之和,这个数就称为“完数”。 //例如,6的因子为1,2,3,而6=1+2+3,因此6是完数。 #include<stdio.h> int main() {
int n,s,i; printf("输出1000以内所有的“完数”:\n\n"); for(n=2;n<1000;n++) {
s=0; for(i=1;i<n;i++) if((n%i)==0) s=s+i; if(s==n) {
printf("%d its factors are ",n); //它的因子 for(i=1;i<n;i++) if(n%i==0) printf("%d ",i); printf("\n"); } } return 0; }
运行结果…………………………

用中文输出:

其它:
1.水仙花数(输出全部水仙花数)
2.素数(判断,统计,范围输出)
3.判断闰年的3种方法(判断+范围输出)
4.C语言与计算机语言(内含Hello world!详解)
常见一些概念:
质数 :一个数的因数只有 1 和 它本身(又称素数)
合数 :一个数除 1 和 它本身 外,还有其它的因数。
真因子:包括1但不包括这个数本身的约数(又称真因数)
真约数:除了自身以外的约数
例如:6的约数(因子)有1、2、3、6,真因子是1、2、3。
最后再来看前面完数的定义
完数:一个数如果恰好等于它的因子之和,这个数就称为“完数”。
你有没有发现,在许多对完数定义或问题中常常说:完数=因子之和,但因子还包括它本身,不应该是 完数=真因子之和吗 ??
当然,在详细介绍时:完数是它所有的真因子之和


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/125571.html