1978번 소수 찾기
문제
풀이
import java.util.Scanner;
public class Main {
static boolean isPrime(int m) {
if(m == 1) {
return false;
}
int l = 2;
while(l < m) {
if(m % l == 0) {
return false;
}
l++;
}
return true;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int cnt = 0;
for(int i = 0; i < n; i++) {
int m = sc.nextInt();
if(isPrime(m)) {
cnt++;
}
}
System.out.println(cnt);
sc.close();
}
}
2581번 소수
문제
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
boolean arr[] = new boolean[b + 1];
arr[0] = true; arr[1] = true;
for(int i = 2; i <= Math.sqrt(b + 1); i++) {
for(int j = i * i; j < b + 1; j += i) {
arr[j] = true;
}
}
int min = Integer.MAX_VALUE;
int sum = 0;
for(int i = a; i < b + 1; i++) {
if(!arr[i]) {
if(min > i) {
min = i;
}
sum += i;
}
}
if(sum == 0) {
System.out.println(-1);
} else {
System.out.println(sum);
System.out.println(min);
}
sc.close();
}
}
11653번 소인수분해
문제
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int i = 2;
while (n >= i){
if(n % i == 0){
System.out.println(i);
n /= i;
} else {
i++;
}
}
sc.close();
}
}
1929번 소수 구하기
문제
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
boolean arr[] = new boolean[b + a];
arr[0] = true;
arr[1] = true;
for(int i = 2; i <= Math.sqrt(b + 1); i++) {
for(int j = i * i; j < b + 1; j += i) {
arr[j] = true;
}
}
for(int i = a; i < b + 1; i++) {
if(arr[i] == false) {
System.out.println(i);
}
}
sc.close();
}
}
4948번 베르트랑 공준
문제
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true) {
int n = sc.nextInt();
if (n == 0) {
break;
}
boolean arr[] = new boolean[2 * n + 1];
arr[0] = true;
arr[1] = true;
for (int i = 2; i <= Math.sqrt(2 * n + 1); i++) {
for (int j = i * i; j < 2 * n + 1; j += i) {
arr[j] = true;
}
}
int cnt = 0;
for (int i = n + 1; i < 2 * n + 1; i++) {
if (arr[i] == false) {
cnt++;
}
}
System.out.println(cnt);
}
sc.close();
}
}
9020번 골드바흐의 추측
문제
풀이
import java.util.Scanner;
public class Main {
static boolean isPrime(int n) {
for(int i = 2; i <= Math.sqrt(n); i++) {
if(n % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for(int i = 0; i < t; i++) {
int n = sc.nextInt();
int d;
int r;
d = n / 2;
r = n - d;
while(true) {
if(isPrime(d) && isPrime(r)) {
break;
} else {
d--;
r++;
}
}
System.out.println(d + " " + r);
}
}
}