Editor
C++ 17Python 3JavaC11RustGoJavaScriptTypeScriptC#KotlinSwiftRubyPHPHaskell
1#include <iostream>
2using namespace std;
3
4long long power(long long a, long long b, long long m) {
5 long long res = 1;
6 for (a %= m; b > 0; b >>= 1, a = (a * a) % m)
7 if (b & 1) res = (res * a) % m;
8 return res;
9}
10
11int main() {
12 ios_base::sync_with_stdio(false);
13 cin.tie(NULL);
14 long long a, b, m;
15 if (cin >> a >> b >> m) cout << power(a, b, m) << "\n";
16 return 0;
17}
1import sys
2
3def power(a: int, b: int, m: int) -> int:
4 res = 1
5 a %= m
6 while b > 0:
7 if b & 1:
8 res = (res * a) % m
9 a = (a * a) % m
10 b >>= 1
11 return res
12
13if __name__ == "__main__":
14 tokens = sys.stdin.read().split()
15 if tokens:
16 a, b, m = map(int, tokens[:3])
17 print(power(a, b, m))
1import java.util.Scanner;
2
3public class Main {
4 public static long power(long a, long b, long m) {
5 long res = 1;
6 a %= m;
7 while (b > 0) {
8 if ((b & 1) == 1) res = (res * a) % m;
9 a = (a * a) % m;
10 b >>= 1;
11 }
12 return res;
13 }
14
15 public static void main(String[] args) {
16 Scanner sc = new Scanner(System.in);
17 if (sc.hasNextLong()) {
18 long a = sc.nextLong(), b = sc.nextLong(), m = sc.nextLong();
19 System.out.println(power(a, b, m));
20 }
21 }
22}
1#include <stdio.h>
2
3long long power(long long a, long long b, long long m) {
4 long long res = 1;
5 for (a %= m; b > 0; b >>= 1, a = (a * a) % m)
6 if (b & 1) res = (res * a) % m;
7 return res;
8}
9
10int main() {
11 long long a, b, m;
12 if (scanf("%lld %lld %lld", &a, &b, &m) == 3) {
13 printf("%lld\n", power(a, b, m));
14 }
15 return 0;
16}
1use std::io::{self, Read};
2
3fn power(mut a: u64, mut b: u64, m: u64) -> u64 {
4 let mut res = 1;
5 a %= m;
6 while b > 0 {
7 if b & 1 == 1 { res = (res * a) % m; }
8 a = (a * a) % m;
9 b >>= 1;
10 }
11 res
12}
13
14fn main() {
15 let mut input = String::new();
16 io::stdin().read_to_string(&mut input).unwrap();
17 let mut iter = input.split_whitespace();
18 if let (Some(a), Some(b), Some(m)) = (iter.next(), iter.next(), iter.next()) {
19 let (a, b, m): (u64, u64, u64) =
20 (a.parse().unwrap(), b.parse().unwrap(), m.parse().unwrap());
21 println!("{}", power(a, b, m));
22 }
23}
1package main
2
3import "fmt"
4
5func power(a, b, m int64) int64 {
6 var res int64 = 1
7 a %= m
8 for b > 0 {
9 if b&1 == 1 { res = (res * a) % m }
10 a = (a * a) % m
11 b >>= 1
12 }
13 return res
14}
15
16func main() {
17 var a, b, m int64
18 if _, err := fmt.Scan(&a, &b, &m); err == nil {
19 fmt.Println(power(a, b, m))
20 }
21}
1const fs = require('fs');
2
3function power(a, b, m) {
4 let res = 1n;
5 a = a % m;
6 while (b > 0n) {
7 if (b & 1n) res = (res * a) % m;
8 a = (a * a) % m;
9 b >>= 1n;
10 }
11 return res;
12}
13
14const tokens = fs.readFileSync(0, 'utf-8').trim().split(/\s+/);
15if (tokens.length >= 3) {
16 const [a, b, m] = tokens.slice(0, 3).map(BigInt);
17 console.log(power(a, b, m).toString());
18}
1import * as fs from 'fs';
2
3function power(a: bigint, b: bigint, m: bigint): bigint {
4 let res: bigint = 1n;
5 a %= m;
6 while (b > 0n) {
7 if (b & 1n) res = (res * a) % m;
8 a = (a * a) % m;
9 b >>= 1n;
10 }
11 return res;
12}
13
14const tokens = fs.readFileSync(0, 'utf-8').trim().split(/\s+/);
15if (tokens.length >= 3) {
16 const [a, b, m] = tokens.slice(0, 3).map(BigInt);
17 console.log(power(a, b, m).toString());
18}
1using System;
2
3class Program {
4 static long Power(long a, long b, long m) {
5 long res = 1;
6 a %= m;
7 while (b > 0) {
8 if ((b & 1) == 1) res = (res * a) % m;
9 a = (a * a) % m;
10 b >>= 1;
11 }
12 return res;
13 }
14
15 static void Main() {
16 string[] tokens = (Console.ReadLine() ?? "")
17 .Split((char[])null, StringSplitOptions.RemoveEmptyEntries);
18 if (tokens.Length >= 3) {
19 long a = long.Parse(tokens[0]);
20 long b = long.Parse(tokens[1]);
21 long m = long.Parse(tokens[2]);
22 Console.WriteLine(Power(a, b, m));
23 }
24 }
25}
1import java.util.Scanner
2
3fun power(a0: Long, b0: Long, m: Long): Long {
4 var a = a0
5 var b = b0
6 var res = 1L
7 a %= m
8 while (b > 0L) {
9 if ((b and 1L) == 1L) res = (res * a) % m
10 a = (a * a) % m
11 b = b shr 1
12 }
13 return res
14}
15
16fun main() {
17 val sc = Scanner(System.`in`)
18 if (sc.hasNextLong()) {
19 val a = sc.nextLong()
20 val b = sc.nextLong()
21 val m = sc.nextLong()
22 println(power(a, b, m))
23 }
24}
1import Foundation
2
3func power(_ base: UInt64, _ exp: UInt64, _ mod: UInt64) -> UInt64 {
4 var res: UInt64 = 1
5 var a = base % mod
6 var b = exp
7 while b > 0 {
8 if (b & 1) == 1 { res = (res * a) % mod }
9 a = (a * a) % mod
10 b >>= 1
11 }
12 return res
13}
14
15if let line = readLine() {
16 let parts = line.split(separator: " ").compactMap { UInt64($0) }
17 if parts.count >= 3 {
18 print(power(parts[0], parts[1], parts[2]))
19 }
20}
1def power(a, b, m)
2 res = 1
3 a %= m
4 while b > 0
5 res = (res * a) % m if (b & 1) == 1
6 a = (a * a) % m
7 b >>= 1
8 end
9 res
10end
11
12input = ARGF.read.split.map(&:to_i)
13if input.length >= 3
14 puts power(input[0], input[1], input[2])
15end
1<?php
2function power($a, $b, $m) {
3 $res = 1;
4 $a %= $m;
5 while ($b > 0) {
6 if ($b & 1) $res = ($res * $a) % $m;
7 $a = ($a * $a) % $m;
8 $b >>= 1;
9 }
10 return $res;
11}
12
13$tokens = preg_split('/\s+/', trim(file_get_contents('php://stdin')));
14if (count($tokens) >= 3) {
15 echo power((int)$tokens[0], (int)$tokens[1], (int)$tokens[2]) . "\n";
16}
1import System.IO (getContents)
2
3power :: Integer -> Integer -> Integer -> Integer
4power _ 0 _ = 1
5power a b m
6 | even b = power ((a * a) `mod` m) (b `div` 2) m
7 | otherwise = (a * power a (b - 1) m) `mod` m
8
9main :: IO ()
10main = do
11 input <- getContents
12 case map read (words input) of
13 (a : b : m : _) -> print $ power (a `mod` m) b m
14 _ -> return ()