https://www.acmicpc.net/problem/1977
1977번: 완전제곱수
M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완
www.acmicpc.net
제곱이라는 개념 자체를 이용해서 직접적으로 구현하기보다는 자바에서 제공하는 라이브러리를 최대한 이용해서 해결했다. 어쨌든 제곱수가 아니라면 소수점이 나올 수 밖에 없고, 소수점이 나왔을 때 강제 올림이나 강제 내림을 비교하면 소수점이 있는 지 아닌지를 알 수 있기 때문이 이 방법을 사용해서 해결했다.
문제 및 입출력
코드
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int sum = 0;
int min = Integer.MAX_VALUE;
for(int i=n; i<=m; i++)
{
if(Math.ceil(Math.sqrt(i))==Math.floor(Math.sqrt(i)))
{
sum += i;
min = Math.min(min, i);
}
}
if(sum==0)
{
System.out.println(-1);
return;
}
System.out.println(sum + "\n" + min);
sc.close();
}
}
'[ 다먹살 ] > - Coding' 카테고리의 다른 글
[백준] 6603 로또 (0) | 2021.11.23 |
---|---|
[백준] 1934 최소공배수 (0) | 2021.11.22 |
[백준] 13458 시험 감독 (0) | 2021.11.22 |
[백준] 2163 초콜릿 자르기 (0) | 2021.11.22 |
[프로그래머스] 레벨3 네트워크 (0) | 2021.11.19 |
댓글