Smith 数

题目:

若一个合数的质因数分解式逐位相加之和等于其本身逐位相加之和,则称这个数为 Smith 数。如:4937775=3*5*5*65837,而3+5+5+6+5+8+3+7=42,4+9+3+7+7+7+5=42,所以4937775是 Smith 数。求给定一个正整数 N,大于 N 的最小 Smith 数。

输入:若干个 case ,每个 case 一行代表正整数 N,输入 0 表示结束。

输出:大于 N 的最小 Smith 数。

输入样本

4937774

0

输出结果

4937775

 刚看到这道题的时候感觉挺蒙的,我主要迷这两点:

1.什么是合数?

2.怎么求一个数的所有质因子?

百度了一下合数,原来除了质数,其他的就是合数。被这个名字给骗了。1既不是质数也不是合数。

然后我又陷入了深思,怎么求一个数的质因子???

其实这一点很好求!

举个例子:100

让100除2,看看能不能除尽,如果能除尽,就除。此时100变成了50

然后50除2,看看能不能除尽,如果能除尽,就除。此时50变成了25

然后25除2,看看能不能除尽,如果能除尽,就除。显然除不尽,那么2就要

你可能感兴趣的:(算法,Smith,算法)