多数の割り切れ

トピック:LightOJ問題:: 1214 -大部門

与えられた二つの整数、ABは、あなたがいるかどうか確認する必要があり割り切れるBか。私たちは、整数のことを知っているaは整数で割り切れるBの整数が存在する場合に限り、Cというように=のb * cは

入力

入力は整数で始まりT(525以下)テストケースの数を表します。

各ケースは、2つの整数を含む行から始まる(-10 200 ≤10≤ 200及びB(| B |> 0、bが32ビット符号付き整数に適合する)数値は先頭のゼロは含まれません。

出力

各場合について、最初のケース番号を印刷します。そして、印刷「割り切れる」場合で割り切れるBそれ以外の場合は、印刷「割り切れません」

サンプル入力

サンプル入力用の出力

6

101 101

0 67

-101 101

7678123668327637674887634 101

11010000000000000000 256

-202202202202000202202202 -101

ケース1:割り切れます

ケース2:割り切れます

ケース3:割り切れます

ケース4:割り切れません

ケース5:割り切れます

ケース6:割り切れ

質問の意味:

    Bか否かを決意で割り切れる多数(正および負ことに留意されたい)に

数論原理:

    (A + B)%、P =(%Pが+のB%P)が%P

    合同定理モード:https://baike.baidu.com/item/%E5%90%8C%E4%BD%99%E5%AE%9A%E7%90%86

    合同金型定理:https://baike.baidu.com/item/%E5%8F%96%E6%A8%A1%E8%BF%90%E7%AE%97/10739384

コード:

  

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
INT メイン()
{ 
     char型 [ 205 ]。
     int型のn;
     int型のB; 
     cinを >> N;
     以下のためにint型 i = 1 ; iが++; iが<= N 
     { 
         CIN >> A >> B。
         INT LEN = STRLEN(A)。
         int型フラグ= 0、ANS = 0 もし([ 0 ] == ' - ' 
         フラグ= 1 ;
         int型 J =フラグ; J <LEN; J ++ 
         { ANS
             =(INT)(((長い 長い)ANS * 10 +([J] - ' 0 '))%のB)。
        } 
        のprintf(" ケース%D:" 、I)。
        もし(ANS == 0 
         のprintf(" 割り切れる\ nを" );
        
         のprintf(" 割り切れない\ nを" ); 
     }
     リターン 0 ; 
 }

 

おすすめ

転載: www.cnblogs.com/BYBL/p/10994308.html