소개 및 크레딧
우리는 숫자가 11 또는 3으로 나눌 수 있는지 테스트하는 멋진 규칙을 알고 좋아합니다.이 숫자는 숫자의 숫자에 대한 영리한 합계입니다. 이제이 문제는 숫자의 합계를 계산 한 다음 결과가 완벽한 정수 제곱인지 여부를 확인하여 새로운 수준으로이 작업을 수행합니다. 어떤 작업도 일반적으로 매우 짧게 수행 할 수 없습니다. 이 속성은 숫자를 볼 때보기가 매우 어렵 기 때문에 전체 숫자 목록에 대해이 작업을 수행하여 인간의 작업을 줄일 수 있기를 원합니다. 그래서 이것은 지금 당신의 도전입니다!
이것은 대학 기능 프로그래밍 과정의 과제였습니다. 이 과제는 이제 닫히고 수업에서 논의되었으며 교수님이 여기에 게시 할 수있는 권한이 있습니다 (명백하게 물었습니다).
사양
입력
입력은 표준 I / O 형식의 음이 아닌 정수 목록입니다.
언어에 따라 목록 형식을 선택할 수 있습니다
산출
출력은 표준 I / O 형식의 정수 목록입니다.
무엇을해야합니까?
입력 목록에서 자릿수 가 제곱 이 아닌 정수의 모든 정수를 필터링하십시오 .
요소의 순서는 변경되지 않을 수 있습니다. 예를 들어 반환 [1,5,9]할 수 없는 경우[9,1]
잠재적 코너 케이스
0 은 음이 아닌 정수이므로 유효한 입력이며 0도 유효한 정수 루트입니다. 예를 들어 0은 정수 제곱으로 계산됩니다.
빈 목록도 유효한 입력 및 출력입니다.
누가 이겼어?
이것은 코드 골프이므로 바이트 단위의 최단 답변이 이깁니다!
물론 표준 규칙이 적용됩니다.
테스트 사례
[1,4,9,16,25,1111] -> [1,4,9,1111]
[1431,2,0,22,999999999] -> [1431,0,22,999999999]
[22228,4,113125,22345] -> [22228,4,22345]
[] -> []
[421337,99,123456789,1133557799] -> []
단계별 예
Example input: [1337,4444]
Handling first number:
Sum of the digits of 1337: 1+3+3+7=14
14 is not an integer square, thus will be dropped!
Handling second number:
Sum of the digits of 4444: 4+4+4+4=16
16 is an integer square because 4*4=16, can get into the output list!
Example output: [4444]