Top.Mail.Ru
Ответы

Помогите с задачей с С++

Найти натуральное число, состоящее из трёх цифр, с возрастающими слева направо цифрами, являющееся полным квадратом. Число является полным квадратом, если квадратный корень из него есть простое число (число 121 – полный квадрат, т. к. 121=11*11, а 11 – простое число).

Дополнен

мне Нужен код для С++

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

#include <iostream>
using namespace std;
bool is_prime(const int num) {
if (!num) return false;
bool prime;
if (num < 6 && (num <= 2 || num == 3 || num == 5)) prime = true;
else if (~num & 1 || 0 == num % 3 || 0 == num % 5) prime = false;
else {
int n;
for (n = 3; n * n <= num && num % n; n += 2) { ; }
prime = n * n > num;
}
return prime;
}
bool is_increases(int x) {
auto n = x % 10;
while (x) {
x /= 10;
const auto h = x % 10;
if (h < n) n = h;
else return false;
}
return true;
}
int main() {
int x, n = 11;
do {
x = n * n;
if (is_prime(n) && is_increases(x)) cout << x << '\n';
n += 2;
} while (x < 1000);
cin.get();
}

Аватар пользователя
Оракул
7лет

169

Аватар пользователя
Просветленный
7лет

289

Аватар пользователя
Ученик
7лет

Попробуй найти под диваном)))