// Имеет ли число n в точности m простых делителей?
// http://a...content-available-to-author-only...s.ru/problem.aspx?num=2102
#include <iostream>
#include <cmath>
using namespace std;
int main() {
unsigned long long n, d = 2;
cin >> n;
int m = 20; // ищем m делителей числа n
while (m > 0 && d <= pow(n, 1./max(2, m)) + 1e-10) {
if (n % d == 0) { // если делитель найден,
n /= d; // то делим
m--; // и ищем на один делитель меньше
} else d++; // иначе проверяем следующее число
}
cout << (m == 1? "Yes" : "No"); // найдено m делителей?
return 0;
}
Ly8g0JjQvNC10LXRgiDQu9C4INGH0LjRgdC70L4gbiDQsiDRgtC+0YfQvdC+0YHRgtC4IG0g0L/RgNC+0YHRgtGL0YUg0LTQtdC70LjRgtC10LvQtdC5PwovLyBodHRwOi8vYS4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ucy5ydS9wcm9ibGVtLmFzcHg/bnVtPTIxMDIKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluKCkgewoJdW5zaWduZWQgbG9uZyBsb25nIG4sIGQgPSAyOwoJY2luID4+IG47CglpbnQgbSA9IDIwOwkJCQkvLyDQuNGJ0LXQvCBtINC00LXQu9C40YLQtdC70LXQuSDRh9C40YHQu9CwIG4KCXdoaWxlIChtID4gMCAmJiBkIDw9IHBvdyhuLCAxLi9tYXgoMiwgbSkpICsgMWUtMTApIHsKCQlpZiAobiAlIGQgPT0gMCkgewkvLyDQtdGB0LvQuCDQtNC10LvQuNGC0LXQu9GMINC90LDQudC00LXQvSwKCQkJbiAvPSBkOwkJCS8vINGC0L4g0LTQtdC70LjQvAoJCQltLS07CQkJLy8g0Lgg0LjRidC10Lwg0L3QsCDQvtC00LjQvSDQtNC10LvQuNGC0LXQu9GMINC80LXQvdGM0YjQtQoJCX0gZWxzZSBkKys7CQkJLy8g0LjQvdCw0YfQtSDQv9GA0L7QstC10YDRj9C10Lwg0YHQu9C10LTRg9GO0YnQtdC1INGH0LjRgdC70L4KCX0KCWNvdXQgPDwgKG0gPT0gMT8gIlllcyIgOiAiTm8iKTsgLy8g0L3QsNC50LTQtdC90L4gbSDQtNC10LvQuNGC0LXQu9C10Lk/CglyZXR1cm4gMDsKfQ==