본문 바로가기
PS(Problem Solving)/백준_BOJ

[백준] 9421번 - 소수상근수 (C++) 문제 및 풀이

by 초코칩프라푸치노 2022. 2. 9.

문제) 백준 - 에라토스테네스의 체 - 소수상근수

https://www.acmicpc.net/problem/9421

 

9421번: 소수상근수

양의 정수 n의 각 자리수의 제곱의 합을 계산한다. 그렇게 해서 나온 합도 각 자리수의 제곱의 합을 계산한다. 이렇게 반복해서 1이 나온다면, n을 상근수라고 한다. 700은 상근수이다. 72 + 02 + 02 =

www.acmicpc.net

 

1부터 N까지 차례로 소수와 상근수 판별을 하여 둘 다 만족할 경우 출력합니다. 소수 판별은 에라토스테네스의 체를 활용하여 해결했습니다. 상근수는 판별은 상근수 변환을 이용하여 변환할 때마다 set에 insert 합니다. 만약, set에 변환된 숫자가 존재할 경우 cycle이 돌아 상근수가 아니므로 false를 return 합니다. 

 

C++ 소스코드)

Full Code)

https://github.com/Chocochip101/BOJ_Solution/blob/main/Solution/9421_%EC%86%8C%EC%88%98%EC%83%81%EA%B7%BC%EC%88%98.cpp

 

GitHub - Chocochip101/BOJ_Solution: BOJ Solutions

BOJ Solutions. Contribute to Chocochip101/BOJ_Solution development by creating an account on GitHub.

github.com

 

반응형

댓글