728x90
문제
양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.
풀이
문제에서 정의한 진짜 약수 중 가장 작은 수와, 가장 큰 수를 곱하면 N이 될 것이라고 생각했다.
코드
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int max = 2, min = 1000000;
st = new StringTokenizer(br.readLine());
for(int i = 0; i < N; i++) {
int tmp = Integer.parseInt(st.nextToken());
if(tmp > max) max = tmp;
if(tmp < min) min = tmp;
}
System.out.println(max * min);
}
}
틀린 부분이 있다면 정정해주시면 감사하겠습니다.
궁금한 부분이 있거나, 다른 아이디어가 있으시면 자유롭게 댓글 남겨주세요!
728x90
'[JAVA]백준 알고리즘 > 단계별 - 정수론 및 조합론' 카테고리의 다른 글
[JAVA]백준 알고리즘 3036번 : 링 (4) | 2022.12.21 |
---|---|
[JAVA]백준 알고리즘 2981번 : 검문 (0) | 2022.12.21 |
[JAVA]백준 알고리즘 1934번 : 최소공배수 (2) | 2022.12.20 |
[JAVA]백준 알고리즘 2609번 : 최대공약수와 최소공배수 (0) | 2022.12.18 |
[JAVA]백준 알고리즘 5086번 : 배수와 약수 (0) | 2022.12.17 |