Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <set>
- #include <map>
- #include <unordered_set>
- #include <unordered_map>
- #include <queue>
- #include <deque>
- #include <algorithm>
- #include <stack>
- #include <string>
- #include <cmath>
- #include <fstream>
- #include <iomanip>
- using namespace std;
- #define fq(qq) for (int q = 0; q < qq; ++q)
- #define pb push_back
- #define fi(n) for (int i = 0; i < n; ++i)
- bool prime(int n) {
- for (int i = 2; i <= sqrt(n) + 1; ++i) {
- if (n % i == 0) {
- return false;
- }
- }
- return true;
- }
- bool pal(int n, int k) {
- vector<int> v;
- while (n > 0) {
- v.pb(n % k);
- n /= k;
- }
- n = (int)v.size();
- fi(n / 2) {
- if (v[i] != v[n - i - 1]) {
- return false;
- }
- }
- return true;
- }
- int main() {
- int qq = 1000;
- fq(qq) {
- int n = rand() % 200;
- bool ans = true;
- for (int i = 2; i <= n - 2; ++i) {
- if (pal(n, i)) {
- ans = false;
- }
- }
- if (n <= 4 || n == 6) {
- // cout << "YES\n";
- if (ans == false) {
- cout << n << " " << ans << "\n";
- }
- continue;
- }
- if (!prime(n)) {
- //cout << "NO\n";
- if (ans) {
- cout << n << " " << ans << "\n";
- }
- continue;
- }
- bool flag = false;
- for (int i = 2; i <= min(n - 2, (int)sqrt(n)); ++i) {
- if (pal(n, i)) {
- flag = true;
- }
- }
- if (flag) {
- if (ans) {
- cout << n << " " << ans << "\n";
- }
- //cout << "NO\n";
- } else {
- if (!ans) {
- cout << n << " " << ans << "\n";
- }
- //cout << "YES\n";
- }
- }
- return 0;
- }
- /*
- 3 -1 -3
- 0 3 3 0
- */
- /*
- 2 1000 2000
- 1299 1701
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement