[伯俊]1629次乗算/Java,Python
Baekjoon Online Judge
algorithm practice
-問題を逐次解く
20.分割征服
再帰的なアルゴリズムを応用し,分割征服を学ぶ.
Java/Python
4.乗算
1629号
分割征服による高速計算二乗の問題
この問題は出力自然数AにBを乗じた数をCの残り数で割ったものである.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long A = sc.nextLong();
long B = sc.nextLong();
long C = sc.nextLong();
System.out.println(power(A, B, C));
}
private static long power(long a, long b, long c) {
if(b == 1) return a % c;
long temp = power(a, b / 2, c);
// b가 짝수일 때
if(b % 2 == 0) {
return (temp * temp) % c;
// b가 홀수일 때
} else {
return (temp * temp % c) * a % c;
}
}
}
import sys
a, b, c = map(int, sys.stdin.readline().split())
def power(a, b, c):
if b == 1:
return a % c
temp = power(a, b//2, c)
if b % 2 == 0:
return (temp * temp) % c
else :
return (temp * temp % c) * a % c
print(power(a, b, c))
Reference
この問題について([伯俊]1629次乗算/Java,Python), 我々は、より多くの情報をここで見つけました https://velog.io/@jini_eun/백준-1629번-곱셈-Java-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol