웹&컴퓨팅

나르시스트수

x2chi 2007. 12. 24. 17:38
반응형
^^ 이거 누구한테 설명하려고 쓴 이메일인데 ,,

언젠가 필요할꺼같아서 잊어 버리지 않게,,,,ㅋㅋㅋ

나르시스트수 이거 ,,,,

흥배 한테 보냈던거 같다....2003년?? 2004년?? 하여튼 옛날에,,,,근데 어디 쓰지?

아무리 생각해도 언제 쓸지 모르겟넹,,,,



123 같은 경우

( 1*1*1 ) + ( 2*2*2 ) + ( 3*3*3 )

이렇게 계산했을 때

1^3 + 2^3 + 3^3
1의 3승 / 2의 3승 / 3의 3승이면,,,

123이 안됩니다,,

그럼 나르시스트수가 안되구요.

나르시스트의 수는 위에 처럼 계산했을 때 자기 자신의수가 되는수를 나르시스트수 라고 합니다,

예를들어 153의 경우는

1^3 + 5^3 + 3^3 이면…

153이 됩니다,,,,

이수를 나르시스트수 라고 하는데요,,

알고리즘만 알면

쉬운 것 같네요,,,,,

인터넷 이곳저곳에 올라잇는 내용이 너무 어렵게 되어잇어서,,,

나름대로 쉽게 한건데,,,,흥배씨라면,,,당연,,,ㅋㅋㅋ

1이면 1^3 =1



천까지 구하는 C코드입니다..

#include <stdio.h> //알죠 입출력

#include <math.h> //meth 함수가 필요하네요!! Pow 요놈 해결해야 해요~!ㅋㅋㅋㅋㅋ



void main(){

int i,a,b,c;

for(i=100;i<1000;i++){ //천까지! 백단위씩

a= i/100; //한자리 수로 만들어야죠~!

b= (i%100)/10; //역시 한자리 i 가 100씩 올라 가니깐 100단위로 나눈 나머지 값의 10분의1이면 10자리 맞나요?ㅋㅋ

c=i%10; //역시

if (i == pow(a,3) + pow(b,3) + pow(c,3) ) { //pow는 승을 구하는 함수랍니다. 예-pow(5,4) = 5^4 = 5의 4승이죠~!

printf("%d = %d^3 + %d^3 + %d^3 \n",i,a,b,c); //출력

}

}

}

다시 코드만
#include <stdio.h>
#include <math.h>
void main(){
  int i,a,b,c;
  for(i=100;i<1000;i++){
    a= i/100; b= (i%100)/10; c=i%10;
    if (i == pow(a,3) + pow(b,3) + pow(c,3) ) {
      printf("%d = %d^3 + %d^3 + %d^3 \n",i,a,b,c);
    }
  }
}
반응형