
진짜 약수 = 1과 자기 자신을 제외한 약수
인것같죠?
진짜 약수들이 주어진다
라는 뜻은
약수중 1과 어떤 수 N이 빠졌다는 소리이고
출력에서는 어떤 수 N을 구하길 원합니다
약수는 보통 짝꿍이 있습니다
예를들어 12인 경우
2에겐 6이 있고
3에겐 4가 있어서
서로 곱하면 12가 되는 짝꿍이 있습니다
제곱수인 경우는 솔로인 약수가 있겠죠
이걸 코딩해보면
1. 진짜 약수의 수를 구한다 (짝수일시 제곱수가 아님, 홀수일시 제곱수임)
2. 짝수개인 경우 = 진짜 약수중 가장 작은 수와 가장 큰 수를 곱하면 됩니다 (짝꿍이기 때문에)
3. 홀수개인 경우 = 가운데 있는수를 제곱해줍니다 (제곱수이기 때문에)
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[] arr = new int[n];
for (int i=0;i<n;i++) {
arr[i]=scan.nextInt();
}
Arrays.sort(arr);
int ans;
if(arr.length%2==1) {
ans = arr[(arr.length-1)/2]*arr[(arr.length-1)/2];
}
else {
ans = arr[0]*arr[arr.length-1];
}
System.out.println(ans);
}
}
일단 Scanner를 통해
int[] arr 에 진짜 약수들을 입력받고
Arrays.sort(arr)를 통해
오름차순으로 정렬합니다
'백준 문제풀기 > JAVA' 카테고리의 다른 글
[백준 1094 JAVA 자바] 막대기 (0) | 2023.07.29 |
---|---|
[백준 1085 JAVA 자바] 직사각형에서 탈출 (0) | 2023.07.29 |
[백준 1018 JAVA 자바] 체스판 다시 칠하기 (0) | 2023.07.29 |
[백준 1010 JAVA 자바] 다리 놓기 (0) | 2023.07.29 |
[백준 1008 JAVA 자바] A/B (0) | 2023.07.29 |