Как найти количество четных чисел в диапазоне

This’ll do the trick, even for ranges with negative numbers.

int even = (last - first + 2 - Math.abs(first % 2) - Math.abs(last % 2)) / 2;

Tested with the following code:

public static void main(String[] args) {
    int[][] numbers = {{0, 4}, {0, 5}, {1, 4}, {1, 5}, {4, 4}, {5, 5},
                       {-1, 0}, {-5, 0}, {-4, 5}, {-5, 5}, {-4, -4}, {-5, -5}};

    for (int[] pair : numbers) {
        int first = pair[0];
        int last = pair[1];
        int even = (last - first + 2 - Math.abs(first % 2) - Math.abs(last % 2)) / 2;
        System.out.println("[" + first + ", " + last + "] -> " + even);
    }
}

Output:

[0, 4] -> 3
[0, 5] -> 3
[1, 4] -> 2
[1, 5] -> 2
[4, 4] -> 1
[5, 5] -> 0
[-1, 0] -> 1
[-5, 0] -> 3
[-4, 5] -> 5
[-5, 5] -> 5
[-4, -4] -> 1
[-5, -5] -> 0

lower = int(input())
upper = int(input())
odd = 0
even = 0
prima = 0
for i in range(lower, upper+1):
    if i % 2 == 0:
        even += 1
    else:
        odd += 1

    if i > 1:
        for j in range(2, i):
            if (i % j) == 0:
                break
            else:
                prima += 1

print(prima, even, odd)

Я написала вот такой код. Что касается нечётных и чётных чисел – всё работает. А вот с простыми числами выдаёт неправильный ответ. Подскажите в чём проблема. Спасибо.

задан 8 авг 2021 в 15:38

python_prog's user avatar

python_progpython_prog

651 золотой знак2 серебряных знака12 бронзовых знаков

Вам нужно изменить условие для проверки на простоту числа. Раньше вы считали число правильным сразу, если оно не делилось на 2.

По сути надо написать блок else для цикла, то есть удалить по знаку табуляции на 2 строках. Так будет работать:

upper = int(input())
odd = 0
even = 0
prima = 0
for i in range(lower, upper+1):
    if i % 2 == 0:
        even += 1
    else:
        odd += 1

    if i > 1:
        for j in range(2, i):
            if (i % j) == 0:
                break
        else:
            prima += 1

print(prima, even, odd)

P.S. Для проверки числа на простоту достаточно перебирать только от 2 до квадратного корня этого числа

ответ дан 8 авг 2021 в 15:54

Elusha's user avatar

Как посчитать количество четных чисел?

Есть ли в Excel встроенная функция подсчёта количества четных чисел на заданном промежутке [a,b]?


  • Вопрос задан

    более года назад

  • 259 просмотров

Пригласить эксперта

Привет!

=СУММ(ОСТАТ(<Диапазон>;2)) – для нечетных
=СУММ(1 – ОСТАТ(<Диапазон>;2)) – для четных чисел

Чтобы подсчет сработал, нужно ввести формулу и вместо Enter нажать Ctrl + Shift + Enter, тогда формула сработает для массива чисел и будет заключена в фигурные скобки, примерно так:
626b848e5beef019703171.png


  • Показать ещё
    Загружается…

18 мая 2023, в 18:57

1500 руб./в час

18 мая 2023, в 18:46

9000 руб./за проект

18 мая 2023, в 18:37

3500 руб./за проект

Минуточку внимания

Студворк — интернет-сервис помощи студентам

Hello, world!
Вот такую задачу перед нами, студентами, поставил товарищ преподаватель, НО попросил внести небольшие дизайнерские и соответственно головоломающие коррективы.
Вот непосредственно первоначальное условие задачи:

Напишите функцию, которая бы для диапазона, передаваемого ей в качестве параметра, и признака типа результата, находила бы количество четных чисел, содержащихся в диапазоне, если значение типа результата = 1, нечетных чисел, если значение типа результата = 2.

Вроде задача не сложная, даже если учитывать полное незнание VBA. Но нужно следующее: допустим у нас есть выделеная область ячеек, пусть будет 20*20. Ее мы должны рандомно заполнить числами и выделить мышкой область допустим 5*4 и решить главный вопрос задачи. Так вот, помогите пожалуйста, покажите как работать так с ячейками Экселя. Заранее благодарен!

Определить количество ячеек в диапазоне можно формулой =СЧЁТ(диапазон)

количество четных ячеек можно вычислить как разность между общим количеством ячеек диапазона и количеством ячеек с нечетными значениями.

Формула для подсчёта количества нечетных ячеек =СУММ(ОСТАТ(диапаз­он;2)) (подробное объяснение формулы )

В итоге получится формула массива (завершаем ввод CTRL+SHIFT+ENTER­)

=СЧЁТ(диапазон)-СУ­ММ(ОСТАТ(диапазон;2))­

Пример:

Подсчитать количество четных чисел в диапазоне B2:B7

формула:

=СЧЁТ( B2:B7 ) – СУММ( ОСТАТ( B2:B7 ; 2 ))

результат

Добавить комментарий