문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
제한사항
x는 1 이상, 10000 이하인 정수입니다.
//while문 사용. 1부터 시작해서 나머지가 1인 수 나오면 break
function solution(n) {
//n을 문자열로 바꾸기
n = n + ""
//비어있는 새로운 배열 생성
let arr = []
//문자열로 바뀐 n을 배열에 한 문자씩 넣기["1","1","8","3","7","2"]
for(let i = 0; i < n.length; i++) {
arr.push(n[i])
}
//메서드를 사용해서 내림차순으로 정렬
arr.sort((a, b) => b - a)
const result = arr.join().replaceAll(',','')
return +result
}
console.log(solution(118372))
function solution(x) {
let num = x;
let sum = 0;
do {
sum += x%10;
x = Math.floor(x/10);
} while (x>0);
return !(num%sum);
}