PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2017/11/02 21:58:18
Name Patrick Jane
Subject [질문] a^p mod n을 구하는 빠른방법있을까요?
n은 31비트 수로 가정하고 a는 {2,3,4,.....,n-2} 이고 p는 n-1=2^r*p (p는 홀수) 입니다.

밀러라빈에서 z를 구하는과정에서 a^p mod n을 구해야하는데 수가 작으면 pow(a,p)%n을 통해서 구하는게 가능한데, n값이 앞에서 주어진데로 31비트정도되는
소수를 넣고 판별하려니 숫자가 너무 커서 제대로 구하지를 못하네요.

우선 구글링으로 검색한결과
int fastExpLimited(int base, int exp, int limit) {
        int result = base;
        while (exp > 1) {
                result *= result;
                if (exp % 2) {        
                        result *= base;
                }
                exp /= 2;
                result %= limit;
        }
        return result;
}
이런식으로 구한다는데, 실제 적용해보니 정상적으로 구하지를 못하네요. (6,5,21)을 넣으면 15를 리턴시켜주네요...6을 리턴시켜줘야하는데..
혹시 다른 방법이나 기발한 생각이있으신분 말씀해주시면 감사하겠습니다!


통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
17/11/02 22:15
수정 아이콘
long long fexp(long long base, long long exp, long long mod) {
if (exp == 1) return base;
long long res = fexp(base, exp/2, mod);
res = res * res % mod;
if (exp % 2) res = res * base % mod;
return res;
}
이걸로 돌려보세요. 시간복잡도 O(log p) 니까 순식간에 나올겁니다.
회색사과
17/11/02 22:21
수정 아이콘
크으 그냥 롱롱 쓰면 될걸.. 그랬네요
Patrick Jane
17/11/02 22:24
수정 아이콘
허헣... 빠른답변 감사합니다!!
회색사과
17/11/02 22:21
수정 아이콘
그냥 드는 생각으로는... 로그 함수를 쓰건 pow를 쓰건...
a^q > n 이 되는 최소한의 q를 찾고, (a^q)/n 을 구한 다음에 [이걸 w라고 치고]
w^(p/q)*a^(p%q) % n 하면 어떨까요?
Patrick Jane
17/11/02 22:24
수정 아이콘
빠른답변 감사합니다!!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
111295 [질문] 블박 DIY 개인이 할만 할까요? [6] Heaven2405 17/11/02 2405
111294 [질문] 유치원 선택 고민.. 의견 부탁 드려요. [31] 메모네이드3414 17/11/02 3414
111293 [질문] 여자친구와 갈만한 만화방 추천 바랍니다. [8] chamchI3632 17/11/02 3632
111292 [질문] 오늘 영화 직쏘 보신분들 어떠셨나요? [3] 광개토태왕2363 17/11/02 2363
111291 [질문] a^p mod n을 구하는 빠른방법있을까요? [5] Patrick Jane2307 17/11/02 2307
111290 [질문] 대학로근처에 vr카페있나요? 최적값2341 17/11/02 2341
111289 [질문] 산문집 추천 부탁드립니다. [5] 방청객2704 17/11/02 2704
111288 [질문] SSD 연결 질문드립니다. [3] 토구백2391 17/11/02 2391
111287 [질문] lchf 다이어트 비타민이나 영양제 질문입니다 [2] 블랙핑크지수2454 17/11/02 2454
111286 [질문] 담배 제조일자 보실수 있는분 계신가요 [3] 치토스3528 17/11/02 3528
111285 [질문] 저희집 인터넷 선을 KT직원이 계속 자르는데요.. [11] 우리집개5522 17/11/02 5522
111284 [질문] 평창 올림픽이 똥망하면 문재인 정부 책임론이 나올까요...??? [17] 치느3248 17/11/02 3248
111283 [질문] 자동차 diy관련 시거잭에 대한 궁금점이 있습니다 [3] 삭제됨2961 17/11/02 2961
111282 [질문] lg모니터쓰는데 깜빡임 현상이 있습니다 [2] 유스티스7474 17/11/02 7474
111281 [질문] 영등포 맛집, 술집 추천 부탁드립니다 [2] 손연재2602 17/11/02 2602
111280 [질문] 타자치다가 영타로 바꾸면 글자가 사이로 들어갑니다. [3] 삭제됨2593 17/11/02 2593
111279 [질문] 통화용 블루투스 추천 부탁드립니다 [2] PENTAX2320 17/11/02 2320
111278 [질문] 비트코인 거래소 추천 해주세요 [3] cs3934 17/11/02 3934
111277 [질문] 대전 유성쪽 모임할만한 식당 추천해주세요 [12] Neo3121 17/11/02 3121
111276 [질문] 실손보험 갱신 유지 관련 문의 [5] 수타군2003 17/11/02 2003
111275 [질문] 직계존비속간의 차용증 작성시 무이자가 가능한가요? [5] 꿀멀티7820 17/11/02 7820
111273 [질문] 변호사에게 문제없다고 들은 행위로 기소가 된다면? [9] 푸른발가마우지3822 17/11/02 3822
111271 [질문] 서울에 지게차 단기임대 가능한곳있나요? [6] 일정2096 17/11/02 2096
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로