#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[100001] = { 0 }, a, b;
for (int i = 2; i <= 100000; i++) {
if (arr[i] > 0)
continue;
for (int j = i + i; j <= 100000; j += i) {
for (int k = j; k%i == 0; k/=i) {
arr[j]++;
}
}
}
arr[0] = 1;
arr[1] = 1;
cin >> a >> b;
int count = 0;
for (int i = a; i <= b; i++)
{
if (arr[arr[i]] == 0) {
count++;
}
}
cout << count;
}
언더프라임수(실제로 있는 용어인지는 모르겠다)를 찾는 문제.
에라토스테네스의 채를 조금 수정해서 소인수의 갯수를 미리 다 계산 해 놓는다.
이 문제는 몇번이나 틀린 후에 맞췄는데 .. 실수가 있었다면 첫 반복문에 i를 sqrt(100000)까지 반복한 점..
어처구니 없는 실수 ㅋㅋㅋㅋ ;;;
'알고리즘 > BOJ문제풀이' 카테고리의 다른 글
3차 대회 (0) | 2016.11.25 |
---|---|
187번째 문제 - 1987 알파벳 (0) | 2016.11.24 |
185번째 문제 - 9417 최대 gcd (0) | 2016.11.24 |
184번째 문제 - 1371 가장 많은 글자 (0) | 2016.11.24 |
미니 대회 (1) | 2016.11.23 |