Вопрос задан 23.08.2026 в 06:55. Предмет Информатика. Спрашивает Богатов Яша.

JAVA
1) Дана последовательность N целых чисел. Найти сумму простых чисел.
2) Дана последовательность из N целых чисел. Верно ли, что последовательность является возрастающей?
3) Дан массив целых чисел. Заменить отрицательные элементы на сумму индексов двузначных элементов массива.
Пример:
Массив = {1, 22, 33, 44, 5, -5, -3, 23, -7}
Сумма индексов двузначных элементов массива = 1+2+3+7 = 13
Массив после замены отрицательных на сумму = {1, 22, 33, 44, 5, 13, 13, 23, 13}
5) Отвалидировать доску судоку.
Требования:
Объявлена доска 9x9, необходимо отвалидировать в соответствии с правилами:
1. Каждая строка должна содержать цифры 1-9 без повторения.
2. Каждая колонка должна содержать цифры 1-9 без повторения.
3. Каждый подблок 3x3 должен содержать цифры 1-9 без повторения.

Перейти к ответам

Ответы на вопрос

Отвечает Азалия Галиева.

1. Сумма простых чисел

Простое число — это натуральное число больше 1, которое делится только на 1 и на само себя.

class Main {
static boolean isPrime(int x) {
if (x < 2) return false;
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) return false;
}
return true;
}

public static void main(String[] args) {
int[] a = {2, 4, 5, 7, 10};
int sum = 0;

for (int x : a) {
if (isPrime(x)) sum += x;
}

System.out.println(sum);
}
}

2. Проверка, является ли последовательность возрастающей

Последовательность возрастающая, если каждый следующий элемент больше предыдущего.

int[] a = {1, 3, 5, 8};
boolean increasing = true;

for (int i = 1; i < a.length; i++) {
if (a[i] <= a[i - 1]) {
increasing = false;
break;
}
}

System.out.println(increasing ? "Да" : "Нет");

3. Замена отрицательных элементов

Индексы в Java начинаются с 0. Двузначные числа — от 10 до 99 и от -99 до -10.

int[] a = {1, 22, 33, 44, 5, -5, -3, 23, -7};
int sumIndexes = 0;

for (int i = 0; i < a.length; i++) {
if (Math.abs(a[i]) >= 10 && Math.abs(a[i]) <= 99) {
sumIndexes += i;
}
}

for (int i = 0; i < a.length; i++) {
if (a[i] < 0) {
a[i] = sumIndexes;
}
}

5. Валидация доски судоку

Нужно проверить строки, столбцы и квадраты 3x3: в каждом наборе должны быть цифры от 1 до 9 без повторов.

static boolean checkSet(int[] nums) {
boolean[] used = new boolean[10];

for (int x : nums) {
if (x < 1 || x > 9 || used[x]) return false;
used[x] = true;
}

return true;
}

static boolean isValidSudoku(int[][] board) {
for (int i = 0; i < 9; i++) {
int[] row = new int[9];
int[] col = new int[9];

for (int j = 0; j < 9; j++) {
row[j] = board[i][j];
col[j] = board[j][i];
}

if (!checkSet(row) || !checkSet(col)) return false;
}

for (int r = 0; r < 9; r += 3) {
for (int c = 0; c < 9; c += 3) {
int[] block = new int[9];
int k = 0;

for (int i = r; i < r + 3; i++) {
for (int j = c; j < c + 3; j++) {
block[k++] = board[i][j];
}
}

if (!checkSet(block)) return false;
}
}

return true;
}

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос