알고리즘/[코드업] 기초4-1. 단순 반복문

[JAVA] CodeUp 1282 : 제곱수 만들기

Art Rudy
728x90
반응형

https://codeup.kr/problem.php?id=1282 

 

제곱수 만들기

$n$이 입력되면 $k$를 빼서 제곱수를 만들 수 있는 $k$를 구하고, 그 제곱수에 루트를 씌운 수(제곱근) $t$를 구하여라. 이 때 k는 여러가지가 될 수 있는데 가장 작은 k를 출력한다.

codeup.kr

문제 분류 : 기초4-1. 단순 반복문

문제 설명

n이 입력되면 k를 빼서 제곱수를 만들 수 있는 k를 구하고,

그 제곱수에 루트를 씌운 수(제곱근) t를 구하여라.

이 때 k는 여러가지가 될 수 있는데 가장 작은 k를 출력한다.

입력

n이 입력된다.(0 < k < n <= 2^31 <= 2^31)

출력

k t를 출력한다. 이 때 k는 여러가지가 될 수 있는데 가장 작은 k를 출력한다.

입력 예시

34

출력 예시

9 5

도움말

 

 

내 답안

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    int n = Integer.parseInt(br.readLine());
    int k = 1;
    int squareI;
    double squareD;

    while(true) {
      squareI = (int)Math.sqrt(n-k);
      squareD = Math.sqrt(n-k);
      if(squareI == squareD) {
        break;
      }
      k++;
    }

    bw.write(String.valueOf(k)+" "+String.valueOf(squareI));

    bw.flush();
    bw.close();
    br.close();
  }
}
728x90
반응형