CT
[BOJ] 9단계 약수, 배수와 소수
kinggora
2023. 4. 4. 23:12
| 1 | 5086 | 배수와 약수 |
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
while(true) {
String str = reader.readLine();
if(str.equals("0 0")){
break;
}
StringTokenizer tokenizer = new StringTokenizer(str);
int num1 = Integer.parseInt(tokenizer.nextToken());
int num2 = Integer.parseInt(tokenizer.nextToken());
if(num1 % num2 == 0) {
sb.append("multiple").append("\n");
} else if(num2 % num1 == 0) {
sb.append("factor").append("\n");
} else {
sb.append("neither").append("\n");
}
}
System.out.print(sb);
}
}
| 2 | 2501 | 약수 구하기 |
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer tokenizer = new StringTokenizer(reader.readLine());
int N = Integer.parseInt(tokenizer.nextToken());
int K = Integer.parseInt(tokenizer.nextToken());
for(int i = 1; i <= N; i++){
if(N % i == 0) {
K--;
}
if(K == 0) {
System.out.print(i);
return;
}
}
System.out.println(0);
}
}
| 3 | 9506 | 약수들의 합 |
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while(true) {
String str = reader.readLine();
if(str.equals("-1")) {
break;
}
int num = Integer.parseInt(str);
int sum = 0;
StringBuilder sb = new StringBuilder(num + " = ");
for(int i = 1; i <= num/2; i++) {
if(num % i == 0) {
sum += i;
sb.append(i).append(" + ");
}
}
if(sum == num) {
System.out.println(sb.substring(0, sb.length() - 3));
} else {
System.out.println(num + " is NOT perfect.");
}
}
}
}
| 4 | 1978 | 소수 찾기 |
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(reader.readLine());
StringTokenizer tokenizer = new StringTokenizer(reader.readLine());
int cnt = 0;
for(int i = 0; i < n; i++) {
int num = Integer.parseInt(tokenizer.nextToken());
boolean isPrime = true;
if(num <= 1) {
isPrime = false;
} else {
for(int j = 2; j < num; j++) {
if(num % j == 0) {
isPrime = false;
break;
}
}
}
if(isPrime) {
cnt++;
}
}
System.out.println(cnt);
}
}
*소수: 약수가 1과 자신밖에 없는 2 이상의 자연수
| 5 | 2581 | 소수 |
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int M = Integer.parseInt(reader.readLine());
int N = Integer.parseInt(reader.readLine());
int sum = 0;
int min = 0;
for (int i = M; i <= N; i++) {
boolean isPrime = true;
if (i <= 1) {
isPrime = false;
} else {
for (int j = 2; j <= i/2; j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
}
if (isPrime) {
sum += i;
if (min == 0) {
min = i;
}
}
}
if (sum > 0) {
System.out.println(sum);
System.out.println(min);
} else {
System.out.println("-1");
}
}
}
| 6 | 11653 | 소인수분해 |
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(reader.readLine());
for(int i = 2; i <= N; i++) {
while(N % i == 0) {
N = N / i;
System.out.println(i);
}
}
}
}