CS/코딩테스트

나머지 연산(%)의 분배법칙 (정리 필요)

싹난 감자 2024. 10. 25. 16:13

나머지 연산은 일반적인 분배법칙이 성립되지 않는다.

(A+B)%C와 (A%C) + (B%C)는 같지 않고, (A×B)%C와 (A%C)×(B%C)는 같지 않다.

(A+B)%C는 ((A%C) + (B%C))%C와 같다.

 

나머지 연산 증명 참고

https://lypicfa.tistory.com/638

 

C(&C++) 실습 5. (A+B)%C == ((A%C) + (B%C))%C // 증명

문제 출처 backjoon 10430번 문제 0. 문제 ⅰ. 세 수 A, B, C가 주어졌을 때, 아래의 네 가지 값을 구하는 프로그램을 작성하시오. ■ (A+B)%C는 ((A%C)+(B%C))%C 와 같을까? ■ (A×B)%C는 ((A%C)×(B%C))%C 와 같을까?

lypicfa.tistory.com

 

 

페르마 소정리와 모듈러 연산

연산 중 너무 큰 결과값이 나올 경우 결과값에 나머지 연산을 하면 오버플로우가 발생할 수 있음

나머지 연산이 불가능 할 경우 연산 과정 중 나머지 연산을 적용해야함

 

참고

https://velog.io/@gidskql6671/%EB%82%98%EB%A8%B8%EC%A7%80Modulo-%EC%97%B0%EC%82%B0-

%EB%B6%84%EB%B0%B0%EB%B2%95%EC%B9%99

 

나머지(Modulo) 연산 분배법칙

Modulo 연산의 분배법칙에 대해 알아보자

velog.io

 

https://soeasyalgo.tistory.com/11

 

[연산자]나머지 연산과 분배법칙

APS과정에서 연산의 결과가 long을 넘는 아주 큰 수에 대한 사칙 연산이 필요한 경우가 있다. 당연히 overflow가 발생하기 때문에 결과 처리가 상당히 어렵다. long a = Long.MAX_VALUE -1; long b = Long.MAX_VALUE

soeasyalgo.tistory.com