[JAVA-자바] 17427번: 약수의 합 2
·
알고리즘/백준
N의 입력이 들어왔을경우, 1부터 N까지의 수들의 모든 약수를 구해서 더한 결과를 출력하는 문제입니다.N이 1,000,000까지 들어올 수 있으므로 long자료형을 사용하였습니다.일반적으로 약수를 전부 구해서 더한다면, 시간 초과가 일어나기에1부터 1씩 증가하면서 모든 배수에 자기 자신(약수)를 더해주고 이후에 한꺼번에 연산하는 방법을 택했습니다. 소스코드:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); sc.close(); // 모든 수의 ..
[JAVA-자바] 1929번: 소수 구하기
·
알고리즘/백준
에라토스테네스의 체를 이용한 방법입니다. 자세한 설명은 나중에 다루도록 하겠습니다. 소스코드:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int start = sc.nextInt(); int end = sc.nextInt(); sc.close(); //소수 체크용 배열 선언 boolean[] arr = new boolean[end + 1]; for (int i = 0; i  글의 내용 중 잘못된 점이나 수정이 필요한 부분, 혹은 궁금한 사항..
[JAVA-자바] 4375번: 1
·
알고리즘/백준
모듈러 연산을 이용한 방법입니다. 자세한 내용은 추후에 다루도록 하겠습니다. 소스코드:import java.util.Scanner;public class Main { private static int solve(int n) { int lastMod = 0; for (int i = 1; ; i++) { lastMod = (lastMod * 10 + 1) % n; if (lastMod == 0) { return i; } } } public static void main(String[] args) { Scanner sc = new Scanner(System.i..
[JAVA-자바] 2609번: 최대공약수와 최소공배수
·
알고리즘/백준
두 개의 자연수를 입력받은 뒤, 최대 공약수와 최소 공배수를 출력하는 문제입니다.최대공약수 (greatest common divisor, gcd) :두 수, 혹은 그 이상의 여러 수의 공통인 약수라는 뜻이다. 최대공약수는 이름 그대로 공약수 중 가장 큰 것을 가리킨다. 24의 약수는 (1, 2, 3, 4, 6, 8, 12, 24)18의 약수는 (1, 2, 3, 6, 9, 18)겹치는 약수는 (1, 2, 3, 6)이며, 이 중 최대공약수는 6입니다.최소공배수 (least common multiple, lcm) :두 수, 혹은 그 이상의 수들의 공통인 배수라는 뜻이다. 최소공배수(least common multiple)는 당연히 공배수 중에서 가장 작은 것을 가리킨다. 24의 배수는 (24, 48, 72, ..
[JAVA-자바] 1037번: 약수
·
알고리즘/백준
양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다.어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오. 이 말은 즉 N이 만약 8이라고 가정했을 때, 약수(A)는 1,2,4,8입니다.그러나 문제에서 정의내린 진짜 약수는 약수(A)는 1과 N(자기자신)이 아니여야만 합니다.그렇기 때문에 예제1번의 경우에는 1,2,4,8 에서 1과 8을 제외한 2와 4가 진짜 약수입니다. 예제3번의 경우에는 N이 24라고 가정했을 때, 약수(A)는 1,2,3,4,6,8,12,24입니다.진짜 약수는 1과 24를 제외한 2,3,4,6,8,12 가 진짜 약수가 되는 것 입니다.예제1: 2 * 4 = 8예제2: 2 * 2 = 4예제3: 2 * 12 = 24 이쯤에서..
[JAVA-자바] 1978번: 소수 찾기
·
알고리즘/백준
문제에서 말하는 "소수"는 무엇인가 ?소수의 정의는 '1과 자기 자신으로밖에 나누어 떨어지지 않고 자기 자신의 곱셈의 역수가 없는 수'이다.쉽게 이해하기 위해 소수를 '약수가 2개인 수'로 정의하기도 한다.참고로 1은 1과 자기 자신(1)으로만 나눠떨어지긴 하지만, 곱셈의 역수가 있는 1을 소수로 인정하면 소인수분해의 유일성이 사라지는 등의 문제로 인해 1은 소수가 아닌 것으로 약속했다.따라서 1은 자연수이지만 소수도 아니고 합성수도 아니다.출처: 나무위키 1부터 10까지의 수 중 소수를 꼽아보자면2, 3, 5, 7 이렇게 4개만이 소수이기 때문에, 예제에서 1 3 5 7를 입력했을때, 결과가 3이 나오는 것이다. 자 그럼 이제 소수가 무엇인지 알았으니, 어떻게 소수인지 구별할 수 있을까요? 우선 우리가..