1001:予選2 - クマとデジタル[共通因子] ---- Baiduのスター2019・プログラミング・コンテストの度合い

クマとデジタルの度合い

受け入れ:3638提出:7683
時間制限:1000分の2000 MS(Javaの/その他)メモリの制限:32768分の32768 K(Javaの/その他)

問題の説明

ベアのうち11、33および99の3つの図は、その倍数の全ての各桁素晴らしいですし、自分の倍数でなければならないことがわかりました。5 + 4 = 95 + 4 = 9の倍数が33である5454、33の倍数である:例では、と述べました。18 + 6 = 99の6 + 6 + 6 + 6 = 186倍でありながら、他の例では、666666は、99の倍数です。
ベア度も満足していないが、正の整数以外の11、33、99に加えて、見つかった「すべての倍数の各桁と、自分の倍数でなければならない」、しかし、彼らのデジタル数の倍数があり、あなたそしてまた、その倍数。例えば888888は、1212の倍数である、と言う、と数字と彼の8 + 8 + 8 + 8 + 8 = 248 = 24は1212の倍数です。
今、クマの私は、VVは、各桁の倍数であり、それはまた、XX、それの倍数となるよう、あなたに正の整数VV、XX、XXの数の存在を与えることを、知りたいですか?そのようなすべての番号xxを確認してください。

入力

「組の尋問の複数、最初の行は、正の整数含まTは正の整数であって、各テストのために問い合わせ、次に、データ列のいくつかのグループに代わっをVを

  • 1≤T≤100
  • 1≤V≤10 9

出力

各クエリに対して、2つのラインの出力は、最初の行は正の整数含まmはm個の質問のための代表Vは、満足するいくつかの条件が存在するXは出力の2行目のmの全ての条件を満足する数、X大出力に小さなを。

サンプル入力

3
1
9
666666

サンプル出力

1
1
3
1 3 9
。6
1 2 6 9 3 18である
(注)
最初のクエリを、11数人のメンバーおよび= 1×1は、に等しい自体1×1であり、複数の、したがって実際V = 1答えます。第三の質問、666666各桁の36×= 9 4に等しく、それ自体9×7474である9ので、折り目9実際V = 666666件の慎重な計算が他に、見つけることができた後、回答9ことを除き1,2,3,6,18はまた答えています。

作成しようと効果の対象に公共要因を、範囲が利用可能10E9のある次のように多くて100以上の暴力的なソリューションの最大。VV的各位和VV各位和

コード:

//1001
#include<iostream> 
#include<vector>
using namespace std;

int main(){
    ios::sync_with_stdio(false) ;
    int t,v,tv,sum;
    vector<int> vec(100);
    cin>>t;
    while(t--){
        cin>>tv; v = tv;sum = 0; vec.clear();
        while(tv){
            sum += tv %10;
            tv /= 10;
        }
        for(int i = 1 ; i <= sum;i++ ){
            if(v % i == 0 && sum % i == 0)vec.push_back(i);
        }
        cout << vec.size()<<endl;
        for(int i = 0;i < vec.size();i++){
            cout<< vec[i];
            if(i == vec.size()-1) cout << endl;
            else cout << " ";
        }
    }

    return 0;
}

おすすめ

転載: www.cnblogs.com/zhangxiaomao/p/11374144.html