数据结构和算法 数论 水仙花数
2023-09-14 09:15:03 时间
1、概述
水仙花数是指一个n位正整数(n≥3),它的每个位上的数字的n次幂之和等于它本身。水仙花数也是一种具有特殊性质的数。
水仙花数最先是由英国数学家哈代(G.H.Hardy)发现的。他发现一些三位数满足如下奇特的现象:
简单地说,这些三位正整数在数值上等于其各位数字的立方之和(即3次幂之和)。哈代称为“水仙花数”。
除此之外,进一步研究还发现存在更高位数的水仙花数。以上所述均为三位的水仙花数,而四位的水仙花数有如下3个:
五位的水仙花数共有3个,示例如下:
数学家在理论上证明,最大的水仙花数不超过34位。因此,水仙花数是有限的。这种推广的水仙花数有时也称为阿姆斯特朗数。不同位数的水仙花数的个数如下:
・三位水仙花数:共4个;
・四位水仙花数:共3个;
・五位水仙花数:共3个;
・六位水仙花数:共1个;
・七位水仙花数:共4个;
・八位水仙花数:共3个;
・九位水仙花数:共4个;
・十位水仙花数:共1个;
当然还有很多,这里仅列举了前10位的水仙花数的个数。
2、c++
// 水仙花数
#include <stdio.h>
#include <math.h>
int main()
{
int b, s, g;
for(int num = 100; num < 1000; num++)
{
b = num/100;
s = num/10%10;
g = num%10;
// 使用计算幂的函数
if (num == (pow(b, 3) + pow(s, 3) + pow(g, 3)))
{
printf("%5d\n", num);
}
}
return 0;
}
3、python
# 水仙花数
for num in range(100, 1000):
b = int(num/100)
s = int(num/10)%10
g = num%10
if num == b**3 + s**3 + g**3:
print("水仙花数: ", num)
相关文章
- Java 常见摘要算法——md5、sha1、sha256
- C#数据结构与算法揭秘16
- Java实现 蓝桥杯VIP 算法提高 勾股数
- Java实现 蓝桥杯VIP 算法训练 矩阵加法
- Java实现 蓝桥杯 算法训练 约数个数
- Java实现 蓝桥杯 算法提高 概率计算
- 数据结构和算法—动态规划
- 数据结构和算法-排序算法-归并排序
- 重新整理数据结构与算法(c#)——算法套路k克鲁斯算法[三十]
- 重新整理数据结构与算法(c#)—— 平衡二叉树[二十三]
- 重新整理数据结构与算法——环形链表[五]
- 数据结构和算法-排序算法-冒泡排序
- 重新整理数据结构与算法(c#)—— 算法套路二分法[二十四]
- 重新整理数据结构与算法(c#)—— 平衡二叉树[二十三]
- 算法常识——树的遍历
- MySQL索引背后的数据结构及算法原理
- ios排序算法(时间复杂度,空间复杂度,稳定性)
- Qt中使用OpenCV修改图片局部颜色算法优化
- 【智能算法】详解支持向量机(SVM)算法
- 【阶段三】Python机器学习25篇:机器学习项目实战:LigthGBM算法的核心思想、原理与LightGBM分类模型
- STL 源代码剖析 算法 stl_algo.h -- partial_sort / partial_sort_copy
- 【数据结构与算法Python实践系列】5分钟学会经典排序算法-选择排序
- 5.3 Faddeev-Leverrier算法求特征多项式
- RGB 转 YUV 算法
- 汇智动力学院——Java 浅谈数据结构和算法
- 《数据结构与算法分析》学习笔记(五)——二叉树
- 数据结构与算法_15 _ 二分查找(上):如何用最省内存的方式实现快速查找功能
- 数据结构与算法概述
- 数据结构和算法 三、栈
- 数据结构和算法 四、队列
- 数据结构和算法 六、堆
- 数据结构和算法 十九、动态规划
- 【数据结构与算法】——第五章:树与二叉树(2)
- python 文本聚类算法