自整除数(真题)

描述

对一个整数 n, 如果其各个位数的数字相加得到的数 m能整除n, 则称 n 为自整除数.

例如 21, 21%(2+1)==0, 所以21是自整除数.

现求出从10到 n(n<100)之间的所有自整除数.

输入

有一行, 整数n(10<=n<100)

输出

输出有多行.

按从小到大的顺序输出所有大于等于10, 小于等于 n 的自整除数, 每行一个自整除数.

输入样例 1 

20

输出样例 1

10
12
18
20
#include
using namespace std;
int main() {
	int n ;
	int g, s ;
	while( cin >> n ) {
		for( int a = 10 ; a <= n ; a++ ) {
			int m = a ;
			int b = a ;
			
			g = b % 10 ;
			s = b / 10 ;

			if( 0 == m % (g + s) ) {
				cout << m << endl ;
			} 
		}	
	}
	return 0 ;
}

如果有帮助,不妨点个赞,支持一下吧!

你可能感兴趣的:(中国电子学会,1级,c++,算法,图论,开发语言,数据结构)