백준 11653번
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class problem502 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int number = in.nextInt();
List<Integer> list = new ArrayList<>();
for (int i = 2; i <= number; i++) {
// number의 i 모듈 한 나머지가 계속 0이면 누적
while (number % i == 0) {
list.add(i);
number /= i;
}
}
for (int result : list) {
System.out.println(result);
}
}
}
백준 2960번
import java.util.Scanner;
public class problem503 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int number = in.nextInt();
int k = in.nextInt();
int count = 0;
boolean[] flag = new boolean[number + 1];
for (int i = 2; i <= number; i++) {
for (int j = i; j <= number; j+= i) {
// 이미 지워진 수 인지 확인
if(!flag[j]){
count++;
flag[j] = true;
}
// k번째 지워진 수 출력
if(count == k){
System.out.println(j);
// break를 하게되면 안쪽 for문만 탈출하게 됨으로
// 시스템을 완전히 탈출해야됩니다.
System.exit(0);
}
}
}
}
}
백준 2217번
import java.util.Arrays;
import java.util.Scanner;
public class problem504 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int size = in.nextInt();
int[] arr = new int[size];
for (int i = 0; i < size; i++) {
arr[i] = in.nextInt();
}
Arrays.sort(arr);
// 5 10 15 20
/*
1번째 로프(5)는 4개를 사용할 수 있으므로 들 수 있는 중량은 5 * 4 = 20입니다.
2번째 로프(10)는 3개를 사용할 수 있으므로 들 수 있는 중량은 10 * 3 = 30입니다.
3번째 로프(15)는 2개를 사용할 수 있으므로 들 수 있는 중량은 15 * 2 = 30입니다.
4번째 로프(20)는 1개만 사용할 수 있으므로 들 수 있는 중량은 20입니다.
*/
int result = 0;
for (int i = 0; i < size; i++) {
int temp = arr[i] * (size - i);
result = Math.max(temp, result);
}
System.out.println(result);
}
}