З клавіатури вводиться натуральне число, до десяткового запису якого додається в початок і в кінець цифра 1 (например: 478->14781). У підсумку визначити, просте чи це число?
Рішення:
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 | #include <iostream> #include <cstdlib> #include <cstring> using namespace std; bool is_simple(unsigned long n) { if (!(n % 2)) return false; for (unsigned long i = 3; i * i <= n; i += 2) if (!(n % i)) return false; return true; } int main() { setlocale(LC_ALL, "rus"); char buf[80] = "1"; while (true) { char *p = buf + 1; cout << "число: "; cin >> p; *(p += strlen(p)) = '1'; *++p = '\0'; cout << "число: " << buf << (is_simple(atol(buf)) ? " " : " не ") << "простое" << endl; } cout << endl; return 0; } |
Результат:
