[백준(baekjoon) 1977] 완전제곱수 / java Math 함수
2018. 9. 4. 15:45ㆍAlgorithm
반응형
문제
m이상 n이하인 완전제곱수들을 구하고 합과 최소 값을 출력하라.
- 예시 : 60이상 100이하 (64, 81, 100) = 245, 64
- 주의 : 조건에 해당하는 완전제곱수가 하나도 없다면 -1을 출력한다.
해결
알고리즘
간단한 수학문제이다.
그냥 이 문제를 풀면서 자주 쓰이는 java Math
함수들을 정리해봤다.
방법
m
과n
의 제곱근을 구한다.
m
의 제곱근은 올림을 해준다. (크거나 작아야 하므로)n
의 제곱근은 내림을 해준다. (작거나 같아야 하므로)
- 그 사이의 수들을 제곱해준다. = 완전제곱근
구현 java
Math 함수
- 올림 :
Math.ceil(a)
- 매개변수 타입 :
double
- 반환 타입 :
double
- 매개변수 타입 :
- 내림 :
Math.floor(a)
- 매개변수 타입 :
double
- 반환 타입 :
double
- 매개변수 타입 :
- 반올림 :
Math.round(a)
- 매개변수 타입 :
float
,double
- 반환 타입 :
float
,double
- 매개변수 타입 :
- 제곱 :
Math.pow(a, b)
=
- 매개변수 타입 :
double
- 반환 타입 :
double
- 매개변수 타입 :
- 제곱근 :
Math.sqrt(a)
=
- 매개변수 타입 :
double
- 반환 타입 :
double
- 매개변수 타입 :
- 절대값 :
Math.abs(a)
- 매개변수 타입 :
int
,long
,float
,double
- 반환 타입 :
int
,long
,float
,double
- 매개변수 타입 :
- 큰 값 :
Math.max(a, b)
= a와 b 중 큰 값
- 매개변수 타입 :
int
,long
,float
,double
- 반환 타입 :
int
,long
,float
,double
- 매개변수 타입 :
- 작은 값 :
Math.min(a, b)
= a와 b 중 작은 값
- 매개변수 타입 :
int
,long
,float
,double
- 반환 타입 :
int
,long
,float
,double
- 매개변수 타입 :
1.import java.util.*;
2.
3.public class Main {
4. public static void main(String[] args) {
5. Scanner sc = new Scanner(System.in);
6. int m = sc.nextInt();
7. int n = sc.nextInt();
8.
9. int min = (int)Math.ceil(Math.sqrt(m));
10. int sum = 0;
11. for (int i = min; i <= Math.floor(Math.sqrt(n)); i++) {
12. sum += Math.pow(i, 2);
13. }
14.
15. if (sum > 0) {
16. System.out.println(sum);
17. System.out.println((int)Math.pow(min, 2));
18. } else System.out.println(-1);
19.
20. }
21.}
결과
반응형