問題の説明
A、B、Pが与えられると、(A ^ B)mod Pを見つけます。
入力フォーマット
行を入力してください
最初の行には、N、M、Pの3つの数字があります。
最初の行には、N、M、Pの3つの数字があります。
出力フォーマット
出力は1行で、要求を示します。
入力例
2 5 3
出力例
2
データサイズと合意
合計10セットのデータ
100%のデータでは、AとBはlong longの範囲の非負の整数であり、Pはintの非負の整数です。
100%のデータでは、AとBはlong longの範囲の非負の整数であり、Pはintの非負の整数です。
悲しい話を追加しました。
裸のテンプレートの質問、提出のコピーと貼り付け、40ポイント。
次に、モジュロの詳細が間違っていました。
40ポイントコード
1 #include <bits / stdc ++。h> 2 名前空間std を使用 。 3 typedef long long ll; 4 ll quick_pow(ll x、ll y、ll c){ 5 ll ans = 1 ; 6 while (y){ 7 if(y&1 ){ 8 ans =(ans%c * x%c)%c; 9 } 10 x =(x%c * x%c)%c; 11年 >> = 1 ; 12 } 13はansを返します。 14 } 15 int main(){ 16 ll x、y、p; 17 while(cin >> x >> y >> p){ 18 ll ans = quick_pow(x、y、p); 19 cout << ans << endl; 20 } 21は 0を返し ます。 22 }
100ポイントコード
1 #include <bits / stdc ++。h> 2 名前空間std を使用 。 3 typedef long long ll; 4 ll quick_pow(ll x、ll y、ll c){ 5 ll ans = 1 ; 6 while (y){ 7 if(y&1 ){ 8 ans =(ans%c * x%c)%c; 9 } 10 x =(x%c * x%c)%c; 11年 >> = 1 ; 12 } 13はansを返します。 14 } 15 int main(){ 16 ll x、y、p; 17 while(cin >> x >> y >> p){ 18 ll ans = quick_pow(x%p、y、p); 19 cout << ans << endl; 20 } 21は 0を返し ます。 22 }
別のシリーズを探す