【题解】HDU6674 度度熊与数字⭐⭐【暴力】

HDU6674 度度熊与数字

度熊发现,1, 3 以及 9 这三个数字很神奇,它们的所有的倍数的每位数字的和一定是自己的倍数。例如说: 54 是 3 的倍数,同时 5+4=9 也是 3 的倍数。在另一个例子 666 是 9 的倍数,同时 6+6+6=18 也是 9 的倍数。

度熊又发现,除了 1, 3, 9 以外的的正整数,虽然并不满足"所有的倍数的每位数字的和一定是自己的倍数",但也存在一些数是它们的倍数且各位数字和也是它们的倍数。例如说,888 是 12 的倍数,且他的各位数字和 8+8+8=24 也是 12 的倍数。

现在度熊想知道,给你一个正整数 V,是否存在一个数 x,使得 V 是 x 的倍数,同时它的每位数字的和也是 x 的倍数呢?请找出所有这样的数 x。

Input

有多组询问,第一行包含一个正整数 T 代表有几组询问,接着每组测试数据占一行,包含一个正整数 V。

  • 1≤T≤100

  • 1≤V≤109

Output

对于每一个询问,输出两行,第一行包含一个正整数 m,m 代表对于该询问的 V,有几个满足条件的 x。第二行输出 m 个数,把所有满足条件的 x 由小到大输出。

Examples

Sample Input
3
1
9
666666

Sample Output
1
1
3
1 3 9
6
1 2 3 6 9 18

Note
第一个询问中, 1 1 1 的各位数和为 1 = 1 × 1 1 = 1 \times 1 1=1×1,本身等于 1 × 1 1 \times 1 1×1 都是 1 1 1 的倍数,故 1 1 1 确实为 V = 1 V=1 V=1 的答案。

第三个询问中, 666666 666666 666666 的各位数和为 36 = 9 × 4 36 = 9 \times 4 36=9×4,本身等于 9 × 7474 9 \times 7474 9×7474 都是 9 9 9 的倍数,故 9 9 9 确实为 V = 666666 V=666666 V=666666 的答案,经过仔细计算后能发现,除 9 9 9 以外, 1 , 2 , 3 , 6 , 18 1,2,3,6,18 1,2,3,6,18 也都是答案。

Hint




题意:
题解:
经验小结:

#include<bits/stdc++.h>
using namespace std;
#define ms(x, n) memset(x,n,sizeof(x));
typedef  long long LL;
const int inf = 1<<30;
const int maxn = 1e5+10;
//const LL inf = 0x3f3f3f3f3f3f3f3f;

vector<int> ans;
int main()
{
    int T, v;
    cin >> T;
    while(T--){
        ans.clear();
        cin >> v;
        int vt = 0, m = 0, t = v;
        while(t > 0){
            vt += t%10;
            t /= 10;
        }
        for(int i = 1; i <= vt; ++i)
            if(v%i==0 && vt%i==0){
                ans.push_back(i);
                ++m;
            }
        cout << m << endl;
        for(int i = 0; i < m-1; ++i)
            cout << ans[i] << ' ';
        cout << ans[m-1] << endl;
    }

    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值