반응형
https://www.acmicpc.net/problem/1977
- 문제
- 문제 풀이
백준 1977번 완전제곱수는 브론즈 2 난이도의 수학, 구현 및 브루트 포스 문제이다. 이 문제에서는 입력으로 10,000 이하인 자연수 M과 N이 주어진다. 이때, M이상 N이하인 완전 제곱수의 합과 최소 완전 제곱수를 구하면 된다.
완전 제곱수란 숫자 A의 제곱이 M이상 N이하인 제곱인 수를 뜻한다.
이 문제는 for 문을 이용해서 간단하게 풀 수 있다. 우선 i = 1부터 i * i <= n까지 for 문을 돌린다. 이 이유는 i의 제곱이 N보다 커지면 i를 고려할 필요가 없기 때문이다. 따라서 for 문에서 i * i ≥ m 그리고 i * i ≤ n이면 sum에 i * i를 더해준다. 그리고 첫 제곱수를 min에 초기화해준다.
for 문이 끝나고 sum = 0이면 -1을 출력하고 아니면 sum과 min을 출력해주면 된다.
자세한 코드는 아래에 있다.
- 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int m = Integer.parseInt(br.readLine()); //m 입력받기
int n = Integer.parseInt(br.readLine()); //n 입력받기
int min = Integer.MAX_VALUE; //최소 완전제곱수
int sum = 0; //완전제곱수들의 합
for (int i = 1; i*i <= n; i++) {
if (i * i >= m && i * i <= n) { //i의 제곱수가 범위 안에 있을 때
min = Math.min(i*i, min);
sum += i*i;
}
}
if (sum == 0) {
System.out.print(-1);
} else {
System.out.print(sum + "\n" + min);
}
}
}
반응형
'백준' 카테고리의 다른 글
[백준] 2720번 : 세탁소 사장 동혁 – JAVA [자바] (0) | 2022.11.17 |
---|---|
[백준] 9093번 : 단어 뒤집기 – JAVA [자바] (0) | 2022.09.17 |
[백준] 1292번 : 쉽게 푸는 문제 – JAVA [자바] (2) | 2022.09.12 |
[백준] 2420번 : 사파리월드 – JAVA [자바] (0) | 2022.09.07 |
[백준] 2530번 : 인공지능 시계 – JAVA [자바] (2) | 2022.09.07 |
댓글