n의 n제곱의 합 > 퀴즈게시판

퀴즈게시판

답을 맞히시면, 문제를 내신 회원님이 채택을 해드립니다.
채택은 '좋아요'와 같습니다.

n의 n제곱의 합 정보

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

?>
  • 채택 0
$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;
  • 채택 0
전체 1,354 |RSS
퀴즈게시판 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT