
#include <math.h>
void main() {
int N=3 //水仙数的位数
int i,sum=0
for(i=100i<1000i++){
int m=i
sum=0
while(m>0)
{
int temp=1
int count=N
while(count--) temp*=(m%10)
sum+=temp
m/=10
}
if(sum==i) printf("%d\n",i)
}
}
//编译:gcc Daffodil_number.c -o daffodil
//执行:./daffodil
水仙花数又称超完全数字不变数。
水仙花数有:153、370、371、407、1634、8208、9474、54748、92727、93084、548834、1741725、4210818、9800817、9926315、24678050、24678051、88593477、146511208、472335975、534494836、912985153、4679307774。
凡满足一个N位整数=其各位数字K次方之和的自然数称之为“完全数字不变数(PDI)”(或“坎得尔数”) 。若n=k则称为“超完全数字不变数”(计为PPDI)。PPDI必为PDI。
js写出水仙花数思路分析
1、使用for循环查找遍历,从100到999的所有三位数。
2、判断遍历的数字是否是各个位数的数字的3次幂数之和是否等于数字本身,如果是即为水仙花数,则在控制台输出(如何选取各个位数)。
(1)选取个位数,模以10,得到余数即为个位数。
(2)选取十位数,i除以10,再对结果进行取整,取整后得到一个两位数的整数。用这个结果对10取模,得到十位数。
(3)选取百位数,三位数除以100,再取整,就得到了百位数。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)