(篇六)C语言求自首数、完数、亲密数
文章目录
- 一、求自首数
- 二、求完数
- 三、求亲密数
本篇主要介绍C语言中求自首数、完数和自然常数e的求解算法
一、求自首数
1、自首数:
自守数是指一个数的平方的尾数等于该数自身的自然数。
自首数是按位数来分的:三位自守数是625和376,四位自守数是0625和9376,五位自守数是90625和09376…
比如:
5和6是一位自守数(5x5=25 6x6=36)
25x25=625 76x76=5776,所以25和76是两位自守数。
2、题:
用C语言算法求解100000内的所有自首数
3、参考代码:
#include <stdio.h>main()
{int i, m, temp;printf("100000内的自首数有以下:");for(i=1; i<=100000; i++){temp = i*(i-1);m = 1;//得到某个数的尾数 while(m<=i)m *= 10;if(temp%m == 0)printf("%d ",i);}printf("\n");
}
4、参考结果:
二、求完数
1、完数(完全数)
From“科普中国”
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
如果一个数恰好等于它的因子之和,则称该数为“完全数”。第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。
2、参考代码:
#include <stdio.h>
#include <math.h> int main()
{int i, j, sum;for(i=2; i<1000; i++) {sum = 0;for(j=1; j<=i/2; j++){if((i%j) == 0){sum += j;}if(sum==i){printf("%d是完数,它的因子有:",i);for(j=1; j<=i/2; j++){if((i%j)==0){printf("%d ",j);}}printf("\n");}}}
}
3、参考结果:
三、求亲密数
1、亲密数:
如果a的所有正因子和等于b,b的所有正因子和等于a, 因子包括1但不包括本身, 且a不等于b,则称a,b为亲密数对。一般通过叠代编程求出相应的亲密数对。
2、题:
用C语言编程求出5000内的亲密数对
3、分析:
(1)通过从1循环到5000,对每一个数进行判断,看其是否有亲密数,如果有则输出这个亲密数;
(2)判断是否有亲密使数的方法:先求出某数i的因子之和sum,再求出sum的因子之和;
(3)如果i的因子之和等于sum的因子之和,且i不等于sum,则sum就是i的亲密数
4、参考代码:
#include <stdio.h>int main()
{int i, j, sum1, sum2, n; //sum1是i的亲密数,sum2是sum1的亲密数 printf("您需要计算多少内的亲密数:");scanf("%d",&n);printf("%d内的亲密数有:",n);//核心算法 for(i=1;i<=n;i++){sum1 = 0; //每循环一轮都将求和变量置为0 sum2 = 0;//求i的因子之和sum1 for(j=1;j<i;j++){if(i%j==0) //取余等于0则为一个因子 {sum1 += j;}}//求sum1的因子之和sum2for(j=1;j<sum1;j++){if(sum1%j==0){sum2 += j;}} //判断i的因子和是否等于sum1的因子和if((sum2==i) && (i!=sum1) && (i<sum1)) //表示i的因子和等于sum1,而sum1的因子和等于i,则为亲密后 //后两个判断是为了增强程序的容错性,表示这对亲密数不能是相等的数,且前者小于后者 {printf("\t%d与%d",i,sum1); //输出这对亲密数 } }
}
5、参考结果:
(篇六)C语言求自首数、完数、亲密数相关推荐
- 求3000以内的全部亲密数。
15. 两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B:且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数.求3000以内的全部亲密数. 如 ...
- 如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数
如果整数A的全部因子(包括1,不包括A本身)之和等于B:且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数.求3000以内的全部亲密数 题目:如果整数A的全部因子(包括1, ...
- C语言试题六十八之请编写函数实现亲密数
1. 题目 编写函数:求一个整数范围数字以内的全部亲密数. 亲密数:如果整数A的全部因子(包括1,不包括A本身)之和等于B:且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密 ...
- python求同构数_用c语言求1到1000的同构数_后端开发
python与平台有关吗_后端开发 Python与平台无关,因为Python是跨平台的语言,Python作为脚本语言,是解释执行的,所以能跨平台,前提是必须要有一个对应的解释器. 具体请看实例: py ...
- 信息学奥赛C++语言:趣味整数2(亲密数)
[题目描述] 假设两个正整数A 和 B是亲密数,那么有如下的性质: 整数A的全部真约数(包括1,不包括A本身)之和等于B: 整数B的全部真约数(包括1,不包括B本身)之和等于A. 比如:220 和 2 ...
- 两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
输入 无 输出 3000以内的全部亲密数(输出格式:(A,B),不加换行,不加分隔符号) 一对亲密数只输出一次, 小的在前 样例输入复制 无 样例输出复制 (220,284)(1184,1210)(2 ...
- C语言求毕达哥拉斯亲密数
亲密数 2500年前数学大师毕达哥拉斯就发现,220与284两数之间存在着奇妙的联系: 220的真因数之和为:1+2+4+5+10+11+20+22+44+55+110=284 284的真因数之和为: ...
- 【勇敢牛牛,不怕困难】有手就行栏目:头歌教学平台 - 湖南工业大学刘强老师的C语言函数实战课堂作业答案 - > - > {求和+回文数计算+编写函数求表达式的值+阶乘数列+亲密数+公约数公倍数求解}
第一关:求和 任务描述 题目描述:给你一个n,要求你编写一个函数求1+2+-+n. 输入 输入一个n 输出 输出1+2+-+n的和 测试说明 样例输入: 100 样例输出: 5050 分析: 这个是真 ...
- java求亲密数,怎么写更好更快?
求亲密数,应该是不少编程初学者都会遇到的一个题目.所谓亲密数就是,两个正整数A和B,A的所有因子之和(不包括A本身)等于B,B的所有因子之和(不包括B本身)等于A,满足这个条件的话A和B就是亲密数了. ...
最新文章
- Java学习之if---elif语句
- 为什么说能源管理是分布式光伏发电的突破口?
- linux 挂载有数据硬盘分区,linux下磁盘分区、挂载知多少
- 【转】医学影像处理相关知识整理(一)
- linux fcntl注销信号,linux下fcntl的使用(转载)
- 《ArcGIS Runtime SDK for Android开发笔记》——(9)、空间数据的容器-地图MapView
- latex模板——计算机学报
- android运行xwalkview闪退,解决Android中集成XWalkView的奇怪闪退
- 关于 AI 的数百个问题,清华男神刘云浩教授的 3 万字回复给整得明明白白|附抽奖送书...
- SCDM学习笔记(2)
- 雅虎邮箱 找回密码_如何恢复被遗忘的Yahoo! 密码
- VUE博客模板----FXBLOG
- vue-cli 3 跑项目时卡在 ‘98%’ after emitting CopyPlugin 无法运行
- 现在个人博客网站还能够备案吗?是否需要企业身份才能备案?
- 十三届蓝桥青少组省赛Python-20220423
- JS中判断NaN的方法
- mysql返回数据只要年月日_MySQL支持按年月日查询
- 创新发明与专利实务的尔雅答案
- 龟兔赛跑(Java)
- 用DW制作简单的浮动广告
热门文章
- linux c++开发_Linux/Windows下进行C/C++开发的差异
- java二叉树深度优先遍历会考不递归的吗_树的广度优先遍历和深度优先遍历(递归非递归、Java实现)...
- mysql utf8mb4 bin_MySQL中utf8字符集、排序规则及utf8mb4_bin列大小写不敏感方法
- c语言求满足不等式的最小值,高手请进,请教一道简单的c语言题!
- slot多作用域 vue_vue插槽(slot)详解
- 云丰计算机,于云丰-中国科学院大学-UCAS
- let的解构赋值_解构赋值还有这么多玩法?
- java 手动加载数据库驱动_JAVA加载数据库驱动(JDBC)
- matlab画坐标系,Matlab绘制图形坐标轴操作汇总 | 望天博客
- linux中用户 机器名,Python 在linux下获得当前工作目录,主机名,用户名,操作系统平台等信息...