We will find a way, we always have.

-interstellar

Problem Solving/๋ฐฑ์ค€

[๋ฐฑ์ค€] 1629๋ฒˆ: ๊ณฑ์…ˆ - ํŒŒ์ด์ฌ

Redddy 2022. 5. 16. 21:49

๐Ÿ“• ํ’€์ด 

A์™€ B์™€ C๊ฐ€ ๊ณต๋ฐฑ์„ ๋‘๊ณ  ์ž…๋ ฅ๋œ๋‹ค. ์šฐ๋ฆฌ๋Š” (A^B)%C ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ๋‹จ A,B,C ๋Š” ๋ชจ๋‘ 2,147,483,647 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.

์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ ๋ฐฉ๋Œ€ํ•˜๋‹ค. ๋•Œ๋ฌธ์— 21์–ต๋ฒˆ ๊ณฑํ•œ๋‹ค๋ฉด O(N)์ด์—ฌ๋„ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚  ๊ฒƒ์ด๋‹ค. 
๊ทธ๋ž˜์„œ ๋‚˜๋จธ์ง€ ๋ถ„๋ฐฐ๋ฒ•์น™๊ณผ ์ง€์ˆ˜๋ฒ•์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ต์„ ๊ตฌํ•˜์˜€๋‹ค.

 

๐Ÿ“– ์ง€์ˆ˜๋ฒ•์น™

(A^m)^n = (A^(m * n))

 

๐Ÿ“– ๋‚˜๋จธ์ง€ ๋ถ„๋ฐฐ ๋ฒ•์น™

(AxB) % C = (A%C) * (B%C) % C

 

์šฐ์„  ์ง€์ˆ˜ ๋ฒ•์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„ํ•  ์ •๋ณต์„ ํ•œ๋‹ค. 2 ^ 32 ์˜ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 2๋ฅผ 32๋ฒˆ ๊ณฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ ์ง€์ˆ˜๋ฒ•์น™์„ ์‚ฌ์šฉํ•˜์—ฌ (2^16)^2 16๋ฒˆ ๊ณฑํ•œ ๊ฒƒ์„ ์ œ๊ณฑํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜๋ฉด ์ด 17๋ฒˆ์˜ ์—ฐ์‚ฐ์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ๊ณ„์† ์‚ฌ์šฉํ•˜๋ฉด 10๋ฒˆ, ์—ฐ์‚ฐ 7๋ฒˆ๋งŒ์— ๊ฒฐ๊ณผ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๋งŒ์•ฝ B๊ฐ€ 1์ด๋ผ๋ฉด A 1์ œ๊ณฑ์ด๋ผ๋Š” ์˜๋ฏธ์ด๊ธฐ์— ๋ฐ”๋กœ ๊ทธ๋ƒฅ A%C๋ฅผ ๋ฆฌํ„ดํ•ด์ค€๋‹ค.

 

์˜ˆ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์„ค๋ช…ํ•ด๋ณด์ž

 

A : 10, B : 11, C : 12

 

์˜ˆ์ œ๋Š” ์šฐ์„  B๊ฐ€ ํ™€์ˆ˜์ด๋‹ค. 

 

((A^5)*(A^5)*A)%C ๋ฅผ ์ˆ˜ํ–‰ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

ํ•œ๋ฒˆ ๋” ์ง„ํ–‰ํ•˜๋ฉด,,

(((A^2)*(A^2)*A)*((A^2)*(A^2)*A)*A)%C ์ด๋ ‡๊ฒŒ ๋œ๋‹ค!

 

๋ฌธ์ž๋ฅผ ๋‹ค์‹œ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”๋ณด์ž๋ฉด,,

 

(10^5)(10^5)*10 ์ด ๊ฒฝ์šฐ๋Š” B๊ฐ€ ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ์ด๋‹ค. ์ œ๊ณฑ๊ผด์— A๋ฅผ ํ•œ๋ฒˆ ๋” ๊ณฑํ•ด์ค€๋‹ค.

 

B ๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด A๋ฅผ ํ•œ๋ฒˆ ๋” ๊ณฑํ•ด์ฃผ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

 

 

๐Ÿ’ป ์ฝ”๋“œ

def solve(a,b,c):
    if b == 1: # ๊ฑฐ๋“ญ์ œ๊ณฑ์„ ํ•  ํ•„์š”์—†์Œ ๋ฐ”๋กœ a์˜ ๋‚˜๋จธ์ง€ ๋ฆฌํ„ด
        return a%c
    else:
        k = solve(a, b//2, c)
        if b%2 == 0: # b๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด 
            return (k*k)%c
        else: # b๊ฐ€ ํ™€์ˆ˜๋ผ๋ฉด
            return (k*k*a)%c
a,b,c = map(int, input().split())
print(solve(a,b,c))

 

๐Ÿ“Ž ๋ฌธ์ œ ๋งํฌ : ๊ณฑ์…ˆ

 

1629๋ฒˆ: ๊ณฑ์…ˆ

์ฒซ์งธ ์ค„์— A, B, C๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. A, B, C๋Š” ๋ชจ๋‘ 2,147,483,647 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.

www.acmicpc.net

 

๋„์›€๋ฐ›์€ ๊ธ€๋“ค : ๊ฐœ๋ฐœ ํƒ„์•ฝ๊ณ  , grace0st