반응형
아마 숙제 출제자의 의도와는 맞지 않는 답일 듯. 나머지연산 클래스를 만들어서 해 봤다. 클래스 연습이겠다.
이게 메인
이게 메인
여기가 클래스 정의
// ModClass.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "Mod.h"
int main(int argc, char* argv[])
{
CMod mod47(47);
int a, b;
printf("7^13 mod 47 = %d\n", mod47.Pow(7, 13));
printf("7^13 x 21 mod 47 = %d = a\n", mod47.Mul(mod47.Pow(7, 13), 21));
printf("14^13 mod 47 = %d\n", mod47.Pow(14, 13));
printf("14^13 x 17 mod 47 = %d = b\n", mod47.Mul(mod47.Pow(14, 13), 17));
a = mod47.Mul(mod47.Pow(7, 13), 21);
b = mod47.Mul(mod47.Pow(14, 13), 17);
printf("a x b mod 47 = %d\n", mod47.Mul(a, b));
printf("a x b mod 47 mod 23 = %d\n", mod47.Mul(a, b) %23);
return 0;
}
여기가 소스 프로젝트. VC6.0 프로젝트인데, 별로 대단한 것 없는 콘솔 프로젝트임. 아차, 파이썬으로 검산해 봤는데, 파이썬이 버벅버벅 안하고 기냥 바로 답을 내 줘서 고마웠음.
// Mod.cpp: implementation of the CMod class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Mod.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMod::CMod()
{
}
CMod::CMod(int n)
{
m_n = n;
}
CMod::~CMod()
{
}
int CMod::Add(int a, int b)
{
return (a + b) % m_n;
}
int CMod::Sub(int a, int b)
{
return (a - b) % m_n;
}
int CMod::Mul(int a, int b)
{
return ((a % m_n) * ( b % m_n))% m_n;
}
int CMod::Pow(int a, int b)
{
int ret = 1;
for(int i = 0; i < b; i++)
{
ret = Mul(ret, a);
}
return ret;
}
728x90
'프로그래밍 > 숙제도둑질' 카테고리의 다른 글
8진수 16진수 2진수 변환 (0) | 2017.04.05 |
---|---|
[MFC|CPP] 사구모양의 포텐셜 만들기 (0) | 2009.01.07 |
[C,Py|초급] 1000 부터 1까지 5의 배수 출력하기 (0) | 2008.09.19 |
[C#|초급] 사다리꼴 넓이 구하기 (0) | 2008.09.17 |
[FORTRAN77|초급] exp 함수 테일러급수 (0) | 2008.05.10 |