Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- javascript
- Java
- 백준
- CS지식
- backjoon
- Flutter
- CS
- JPA
- DB
- Oracle
- springboot
- 스프링
- 자료구조
- 파이썬
- 자바
- 프로그래머스
- 자바스크립트
- 리눅스
- baekjoon
- 데이터
- python
- 시큐리티
- 스프링부트
- 데이터베이스
- postgresql
- spring
- 플러터
- Spring Security
- 네트워크
- 스프링 부트 쇼핑몰 프로젝트 with JPA
Archives
- Today
- Total
Jin's Dev Story
[브론즈 2] 2581번 소수 본문
문제 링크 : https://www.acmicpc.net/problem/2581
문제
자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오.
예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다.
입력
입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다.
M과 N은 10,000이하의 자연수이며, M은 N보다 작거나 같다.
출력
M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다.
단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.
입력 1
60
100
출력 1
620
61
입력 2
64
65
출력 2
-1
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int m = scan.nextInt();
int n = scan.nextInt();
int sum = 0;
int min = 10000;
for(int i=m; i<=n; i++) {
boolean check = true;
if(i == 1) continue;
for(int j=2; j<=Math.sqrt(i); j++) {
if(i % j == 0) check = false;
}
if(check) {
sum += i;
if(min > i) min = i;
}
}
if(min == 10000) System.out.println(-1);
else {
System.out.println(sum);
System.out.println(min);
}
}
}
'Coding Test > 백준[JAVA]' 카테고리의 다른 글
[브론즈 4] 24263번 알고리즘 수업 - 알고리즘의 수행 시간 2 (0) | 2023.08.29 |
---|---|
[브론즈 5] 24262번 알고리즘 수업 - 알고리즘의 수행 시간 1 (0) | 2023.08.29 |
[브론즈 1] 9506번 약수들의 합 (0) | 2023.08.28 |
[브론즈 3] 2501번 약수 구하기 (0) | 2023.08.28 |
[실버 5] 2941번 크로아티아 알파벳 (0) | 2023.08.27 |