[ad_1]
モジュロ積
忍者は教授から簡単な課題を出されましたが、それを解くことができません。 したがって、彼は任務を完了するためにあなたの助けが必要です。
この割り当てでは、2 つの整数 A と B が与えられ、1 から A までのすべての数値の積を B を法として出力する必要があります (1 と A は両端を含みます)。
たとえば、A=5 および B=7 の場合、答えは ( 1 * 2 * 3 * 4 * 5 ) % 7 = 1 となるため、最終的な答えは 1 になります。
入力形式:
入力の最初の行には、テスト ケースの数を示す整数 T が含まれます。
すべてのテスト ケースは 1 行で構成され、その行には 2 つの整数 A と B が含まれます。
制約:
1<=T<=50
1<=A<=10^9
1<=B<=10^5
制限時間:1秒
出力フォーマット:
すべてのテスト ケースについて、出力を改行で出力します。
サンプル入力 1
4
8 10
5 140
18 19
20 21
サンプル出力 1:
0
120
18
0
私が試したこと:
Java
import java.util.Scanner; public class ModuloProduct { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int t = scanner.nextInt(); // number of test cases while (t > 0) { int a = scanner.nextInt(); // value of A int b = scanner.nextInt(); // value of B int result = moduloProduct(a, b); System.out.println(result); t--; } scanner.close(); } private static int moduloProduct(int a, int b) { int product = 1; // Calculate the product of all numbers from 1 to A for (int i = 1; i <= a; i++) { product = (product * i) % b; } return product; } }
解決策 1
この部分は間違っていると思います*:
Java
for (int i = 1; i <= a; i++) { product = (product * i) % b; } return product;
試す:
Java
for (int i = 1; i <= a; i++) { product = product * i; } return product % b;
※読み方にもよりますが、 「1 から A を法 B までのすべての数値の積」。
[ad_2]
コメント