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 |
Tags
- AMBA BUS
- boj
- amba
- Zynq
- FPGA
- Backjoon
- Xilinx
- C++
- UNIX
- chip2chip
- verilog
- Bus
- hdl
- axi
- 백준
- 리눅스
- Vivado
- vitis
- Beakjoon
- verilog HDL
- HDLBits
- 정처기
- java
- 코딩테스트
- 실기
- SQL
- 자격증
- linux
- baekjoon
- 정보처리기사
Archives
- Today
- Total
Hueestory
[1456] 거의 소수 (C++) 본문
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
const int MAX = 10000001;
bool isPrime[MAX];
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
ll N, M; cin >> N >> M;
vector<int> Prime;
for (int i = 2; i < MAX; i++) {
if (!isPrime[i]) {
Prime.push_back(i);
for (int j = 2 * i; j < MAX; j += i) {
isPrime[j] = true;
}
}
}
ll ans = 0LL;
for (auto x : Prime) {
ll y = 1LL * x;
ll tmp = y;
while (tmp <= M / y) {
tmp *= y;
if (tmp >= N) ans++;
}
}
cout << ans;
return 0;
}
1. 수의 범위가 1 <= N <= M <= 10^14
2. 어떤 수가 소수의 N제곱(N>=2)이므로, 10^7까지의 소수를 모두 판별하여 저장한다
=> long long 타입을 사용
3. 소수 벡터 Prime를 사용, tmp * y <= M인 경우에만 판별한다

'PS(중단) > BOJ' 카테고리의 다른 글
[1016] 제곱 ㄴㄴ 수 (C++) (0) | 2024.05.21 |
---|---|
[1747] 소수&팰린드롬 (C++) (0) | 2024.05.21 |
[1929] 소수 구하기 (C++) (0) | 2024.05.16 |
[1541] 잃어버린 괄호 (C++) (0) | 2024.05.16 |
[1931] 회의실 배정 (C++) (0) | 2024.05.14 |