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
- Bus
- 백준
- amba
- verilog HDL
- C++
- HDLBits
- Backjoon
- verilog
- vitis
- Vivado
- java
- 자격증
- axi
- baekjoon
- 정처기
- FPGA
- 정보처리기사
- 리눅스
- 코딩테스트
- UNIX
- 실기
- Xilinx
- Beakjoon
- hdl
- chip2chip
- Zynq
- boj
- AMBA BUS
- SQL
- linux
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 |
Comments