求0~100000的自幂数(水仙花数)

#include<stdio.h>
#include<math.h>
int main()
{
	int i = 0;
	for (i = 0; i <= 100000; i++)//产生0~100000的数
	{
		//判断是否为自幂数
		// 1.计算i的位数 - n
		int n = 1;
		int tmp = i;
		while ( tmp/ 10)//123
		{
			n++;
			tmp = tmp/ 10;//12
		}

		// 2.计算i的每一位的n次方之和
		//123
		tmp = i;
		int sum = 0;
		while (tmp)
		{
			//pow是用来求次方数
			sum += pow(tmp % 10, n);//计算次方的函数,计算n次方
			tmp = tmp / 10;
		}
		//3.判断
		if (sum == i)
		{
			printf("%d ", i);
		}
   }
   
	return 0;
}

 

猜你喜欢

转载自blog.csdn.net/m0_69576880/article/details/124924853
今日推荐