no image
에라토스테네스의 체
📍 에라토스테네스의 체소수를 찾는 방법으로 시간복잡도는 O(N^1/2)이다. 💡 원리1. 2부터 시작해 그 수의 배수를 모두 지운다.2. 배수를 지운 다음, 다음으로 남아 있는 수를 선택해 다시 그 수의 배수를 지운다.3. 반복한다.4. 남은 수는 소수이다.🥑 예시코드2부터 100까지의 소수를 구한다.isPrime이라는 boolean 배열을 사용해 소수 여부를 표시한다.배열의 길이는 100이며, 초기값은 모두 true로 설정한다.isPrime[0]과 isPrime[1]은 소수가 아니기 때문에 false로 설정한다.2부터 시작해, 현재 수 i가 소수(isPrime[i] == true)라면, 그 수의 제곱부터 시작해 해당 수의 모든 배수를 false로 설정한다.이는 배수들이 소수가 아니라는 것을 의미한..
2024.09.09
no image
모듈러 연산
📍 모듈러 연산정수의 합과 곱을 어떤 주어진 수의 나머지에 대해 정의하는 방법으로, 쉽게 말해 나머지 연산이다. 💡 표현방식모듈러 연산 표현방식이다.만약 A와 B가 10억일 경우, 결과값은 매우 커져버리고 오버플로우가 날 것이다.이렇게 값이 매우 커져버리는 경우를 대비해 A와 B를 곱하기 전에 양쪽에 동일한 수를 나눠준다.어차피 A와 B를 곱한 값에 10,007을 나누어주려고 했으므로 미리 나누어준다고 해서 결과값에 영향을 주지 않는다. 🥑 예시코드long result = A;int mod = 1000000007;for(int i=0; i 💎 문제softeer) 바이러스boj) 오버플로우와 모듈러
2024.07.05