에라토스테네스의체 2

[알고리즘] 수학

나머지 연산 (A+B) mod M = ((A mod M) + (B mod M)) mod M (A*B) mod M = ((A mod M) * (B mod M)) mod M (A-B) mod M = ((A mod M) - (B mod M) +M) mod M (음수가 나올 수 있기 때문에) 나눗셈의 경우는 성립하지 않는다 최대 공약수(GCD) 유클리드 호제법(Euclidean algorithm) a를 b로 나눈 나머지를 r이라고 했을 때, GCD(a, b) == GCD(b, r) //재귀함수 사용 int gcd(int a, int b){ if( b == 0){ return a; } else { return gcd(b, a%b); } } //재귀함수를 사용하지 않고 int gcd(int a, int b){ wh..

알고리즘/공부 2021.09.20

[백준] 1644번: 소수의 연속합

문제 하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어 보면 다음과 같다. 3 : 3 (한 가지) 41 : 2+3+5+7+11+13 = 11+13+17 = 41 (세 가지) 53 : 5+7+11+13+17 = 53 (두 가지) 하지만 연속된 소수의 합으로 나타낼 수 없는 자연수들도 있는데, 20이 그 예이다. 7+13을 계산하면 20이 되기는 하나 7과 13이 연속이 아니기에 적합한 표현이 아니다. 또한 한 소수는 반드시 한 번만 덧셈에 사용될 수 있기 때문에, 3+5+5+7과 같은 표현도 적합하지 않다. 자연수가 주어졌을 때, 이 자연수를 연속된 소수의 합으로 나타낼 수 있는 경우의 수를 구하는 프로그램을 작성하시오. 1644번: 소수의 연속합 첫째 줄에 ..

알고리즘/BOJ 2021.09.20
반응형