Baidu 백과사전: 나르시서스 수(나르시시즘 수)는 초완전 디지털 불변량(pluperfect digital invariant, PPDI), 자기력 수, 자력 수, 암스트롱 수 또는 암스트롱 수(암스트롱 수)로도 알려져 있습니다. 각 숫자의 3제곱의 합이 자신과 같은 숫자. 예: 1^3 + 5^3+ 3^3 = 153.
문제를 해결하는 아이디어는 먼저 숫자가 n자리라는 것을 알아낸 다음 이를 백으로 나눌 수 있습니다. . pow 함수를 사용하여 n승으로 합하고 마지막으로
다음과 같이 소스 코드를 비교합니다.
#include<stdio.h>
#include<math.h>//pow 함수를 사용할 때
int main()
{ int i = 0;
for ( i = 0; i <= 100000; i++)
{
int n = 0;//代表有几位数,比如123,那么n就为3,
int tem = i;//使用一个临时变量来存放i,用来进行判断等操作,如若不然,会改变i的值,导致死循环
while (tem)//求n的值,
{
n++;
tem = tem / 10;
}
tem = i;//重新赋值,
int sum = 0;//用于存放个位十位百位n次方的累加和
while (tem)
{
sum += pow(tem % 10, n);
tem = tem / 10;
}
if (sum == i)//判断
{
printf("%d\n", i);
}
}
return 0;
}