테스트 사이트 - 개발 중인 베타 버전입니다

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개

<?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);

?>
유창화님의 답변도 너무 감사합니다

정말 코딩하시느라.. 고생하셨어요 ㅎ
$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;
제 답보다 더 좋은 답이네요
좋은 내용입니다
감사합니다.
유창화님의 글이 많이 도움이 되었습니다.
슈와이님!

깔끔한 답변 감사합니다~~~ 아주 깔끔하고 좋은데요

게시글 목록

번호 제목
5919
5915
5905
5904
5885
5879
5870
5869
5868
5863
5854
5813
5800
5796
5787
5786
5785
5768
5750
5732
5716
5713
5707
5705
5701
5694
5681
5669
5668
5648