데굴데굴 굴러 지나가는 프로그래머 지망생입니다. 제목이 짤리는군요. <br><br>질문은 아래 조건에 부합하는 수를 찾는 방법에 대한 겁니다.<br><br><b>조건 : 0보다 큰 어떤 수 X가 있을 때, X^2 의 자릿수(뒷자리부터)에서 X가 포함되는걸 찾고있습니다</b>. 예를 들면 아래와 같습니다.<br><br>1 x 1 = <font>1</font> <br>5 x 5 = <font>2<b><font><u>5</u></font></b></font><br>6 x 6 = 3<b><u>6</u></b><br>25 x 25 = 6<b><u>25</u></b><br>625 x 625 = 390,<b><u>625<br></u></b><br>5의 제곱은 25이고 뒤에서부터 자릿수를 살펴보면 5가 포함되어있죠. 이런수들을 찾는걸 해보고 있었습니다.<br>예를들어 1부터 1,000,000 사이의 수중에서 앞서말한 성질을 지니는 수는 뭐가 있을까 이런식으로 말이죠. 열심히 없는머리통 굴려가며 생각해보니<br>25 * 25 = 25 * ( 25 -1) 이면, 600이고 600이라는 숫자는 6 * 100 ( = 10^2) 이고 100 이라는 숫자는 2^2 * 5^2 로 구성이 되니까 ( 2^n * 5^n = 10^n) <br>25 * (25-1)이 부분이 곱하려는 두 숫자가 각각 2^n와 5^n 을 인수로 가지고 있어야하지 않나 라고 생각까지 했습니다. 그래서.. 생각해낸 방법이<br>어떤수 x에 대해서 위에 언급한 조건을 언급하나 확인하기 위해 x와 x-1에 대해서 2^n 과 5^n 의 인수를 가지고있나 확인하는거였습니다. 그런데 이렇게하려니 만약 1억이라는 큰 숫자에 대해 인수를 찾으려니 시간이 걸리고.. 이래저래 쓸데없이 복잡해지는게 아닌가 싶어서 말이죠.<br><br>이 방법 말고 맨처음에 생각했던건 어떤 수 x를 제곱해서 뒤에서부터 자릿수를 검사해서 x가 포함되어있는지 찾으려고 했으나 아시다시피 숫자가 20억이라던가 굉장히 큰 숫자인경우 오버플로우가 생기니, BigInteger 같은 클래스를 만들어서 써야하나 고민하다가 수학적인 방법으로보면 훨씬 간편하고 좋은게 있지않을까 싶어서 뭔가 더 좋은 방법이 있지않을까 해서 글을 남겨봅니다. :)<br>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.