n의 n제곱의 합
아래의 문제의 답을 도출하는 과정을 프로그래밍 언어로 구현하시오.(php, javascript... 뭐든 좋습니다)
안녕하세요 오늘도 문제 나갑니다~
2^3 이란 ==> 2의 3승 (2*2*2 = 8) 을 의미합니다.
1^1 + 2^2 + 3^3 + 4^4 + 5^5 + 6^6 + 7^7 + 8^8 + 9^9 + 10^10 = 10405071317
이 합의 마지막 5자리는 71317 입니다.
문제)
1^1 + 2^2 + 3^3 + 4^4 + ............. + 999^999 + 1000^1000 의 마지막 5자리는 얼마일까요?
댓글 6개
11년 전
<?php
header('Content-Type: text/html; charset=utf-8');
$input = 1000;//1에서 1000 까지의 n의 n제곱에 대해서 마지막 5자리를 구하라
/*
※ 포인트
숫자형의 범위를 넘어서는 계산
어차피 마지막 5자리를 구하면 되므로 잘라서 계산
*/
$result = 0;
for ($i = 1; $i <= $input; $i++) {
$x = $i;
for ($j = 2; $j <= $i; $j++) {
$x *= $i;
$x_str = (string)$x;//자리수 계산과 잘라내기 위해 문자형으로 변환
if (strlen($x_str) > 5) {//5자리가 넘는다.
$x = (int)substr($x_str, -5);//뒤에서 5자리를 잘라서 다시 숫자형으로 변환
}
}
$result += $x;//최종 제곱 값을 결과값에 합산
$result_str = (string)$result;//자리수 계산과 잘라내기 위해 문자형으로 변환
if (strlen($result_str) > 5) {//5자리가 넘는다.
$result = (int)substr($result_str, -5);//뒤에서 5자리를 잘라서 다시 숫자형으로 변환
}
}
echo "1^1 + 2^2 + 3^3 + 4^4 + ............. + " . ($input - 1) . "^" . ($input - 1) . " + " . $input . "^" . $input . " 의 마지막 5자리는 얼마일까요 ? <br />" . PHP_EOL;
echo (int)substr((string)$result, -5);
?>
header('Content-Type: text/html; charset=utf-8');
$input = 1000;//1에서 1000 까지의 n의 n제곱에 대해서 마지막 5자리를 구하라
/*
※ 포인트
숫자형의 범위를 넘어서는 계산
어차피 마지막 5자리를 구하면 되므로 잘라서 계산
*/
$result = 0;
for ($i = 1; $i <= $input; $i++) {
$x = $i;
for ($j = 2; $j <= $i; $j++) {
$x *= $i;
$x_str = (string)$x;//자리수 계산과 잘라내기 위해 문자형으로 변환
if (strlen($x_str) > 5) {//5자리가 넘는다.
$x = (int)substr($x_str, -5);//뒤에서 5자리를 잘라서 다시 숫자형으로 변환
}
}
$result += $x;//최종 제곱 값을 결과값에 합산
$result_str = (string)$result;//자리수 계산과 잘라내기 위해 문자형으로 변환
if (strlen($result_str) > 5) {//5자리가 넘는다.
$result = (int)substr($result_str, -5);//뒤에서 5자리를 잘라서 다시 숫자형으로 변환
}
}
echo "1^1 + 2^2 + 3^3 + 4^4 + ............. + " . ($input - 1) . "^" . ($input - 1) . " + " . $input . "^" . $input . " 의 마지막 5자리는 얼마일까요 ? <br />" . PHP_EOL;
echo (int)substr((string)$result, -5);
?>
11년 전
유창화님의 답변도 너무 감사합니다
정말 코딩하시느라.. 고생하셨어요 ㅎ
정말 코딩하시느라.. 고생하셨어요 ㅎ
11년 전
$input = 1000;
$result = 0;
$n = 100000; // 6자리로 나누어 나머지가 5자리가 되도록 함
for ($i = 1; $i <= $input; $i++) {
$x = $i;
for ($j = 2; $j <= $i; $j++) {
$x *= $i;
if ($x >= $n) $x %= $n;
}
$result += $x;
}
echo $result % $n;
$result = 0;
$n = 100000; // 6자리로 나누어 나머지가 5자리가 되도록 함
for ($i = 1; $i <= $input; $i++) {
$x = $i;
for ($j = 2; $j <= $i; $j++) {
$x *= $i;
if ($x >= $n) $x %= $n;
}
$result += $x;
}
echo $result % $n;
11년 전
제 답보다 더 좋은 답이네요
좋은 내용입니다
좋은 내용입니다
11년 전
감사합니다.
유창화님의 글이 많이 도움이 되었습니다.
유창화님의 글이 많이 도움이 되었습니다.
11년 전
슈와이님!
깔끔한 답변 감사합니다~~~ 아주 깔끔하고 좋은데요
깔끔한 답변 감사합니다~~~ 아주 깔끔하고 좋은데요
게시판 목록
퀴즈게시판
답을 맞히시면, 문제를 내신 회원님이 채택을 해드립니다.
채택은 '좋아요'와 같습니다.
채택은 '좋아요'와 같습니다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 666 |
루돌프사슴코
|
7년 전 | 3703 | |
| 665 |
루돌프사슴코
|
7년 전 | 1779 | |
| 664 |
kornet
|
7년 전 | 1923 | |
| 663 |
kornet
|
7년 전 | 1653 | |
| 662 |
루돌프사슴코
|
7년 전 | 5355 | |
| 661 |
루돌프사슴코
|
7년 전 | 3886 | |
| 660 |
루돌프사슴코
|
7년 전 | 10027 | |
| 659 |
루돌프사슴코
|
7년 전 | 3419 | |
| 658 |
루돌프사슴코
|
7년 전 | 2280 | |
| 657 |
루돌프사슴코
|
7년 전 | 3563 | |
| 656 |
루돌프사슴코
|
7년 전 | 3926 | |
| 655 |
루돌프사슴코
|
7년 전 | 4413 | |
| 654 |
루돌프사슴코
|
7년 전 | 6971 | |
| 653 |
루돌프사슴코
|
7년 전 | 4271 | |
| 652 |
루돌프사슴코
|
7년 전 | 4381 | |
| 651 |
루돌프사슴코
|
7년 전 | 4828 | |
| 650 |
루돌프사슴코
|
7년 전 | 2979 | |
| 649 |
루돌프사슴코
|
7년 전 | 3695 | |
| 648 |
루돌프사슴코
|
7년 전 | 6731 | |
| 647 |
루돌프사슴코
|
7년 전 | 1954 | |
| 646 |
루돌프사슴코
|
7년 전 | 8521 | |
| 645 |
루돌프사슴코
|
7년 전 | 7424 | |
| 644 |
루돌프사슴코
|
7년 전 | 1824 | |
| 643 |
루돌프사슴코
|
7년 전 | 4403 | |
| 642 |
루돌프사슴코
|
7년 전 | 9059 | |
| 641 |
루돌프사슴코
|
7년 전 | 8584 | |
| 640 |
프로그래머7
|
7년 전 | 1919 | |
| 639 |
미친해바라기
|
7년 전 | 4846 | |
| 638 |
미친해바라기
|
7년 전 | 1561 | |
| 637 |
미친해바라기
|
7년 전 | 3838 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기