本文主要是介绍自整除数 OpenJ_Bailian - 2699,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
自整除数
对一个整数n,如果其各个位数的数字相加得到的数m能整除n,则称n为自整除数.例如21,21%(2+1)==0,所以21是自整除数.现求出从10到n(n < 100)之间的所有自整除数.
Input
有一行,整数n,(10 <= n < 100)
Output
有多行.按从小到大的顺序输出所有大于等于10,小于等于n的自整除数,每行一个自整除数.
Sample Input
47
Sample Output
10 12 18 20 21 24 27 30 36 40 42 45
#include<iostream>
using namespace std;
bool cal( int n ){int sum = 0;int tmp = n;while( n ){int t = n%10;n/=10;sum+=t;}if( tmp % sum == 0 ){return true;}return false;
}
int main(void){int n;while( scanf("%d",&n)!=EOF){for( int i=10;i<=n;i++){if( cal( i ) ){printf("%d\n",i); } }}return 0;
}
这篇关于自整除数 OpenJ_Bailian - 2699的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!