Подсчет нечетных чисел без циклов, с использованием 'long long'

Здравствуйте, не могу придумать, как решить данную задачу через условия, без использования циклов. “Так как там очень большие ограничения, циклом решать даже смысла не имеет.” (рекомендация к выполнению)

Даны два целых числа A и B . Требуется определить количество нечётных чисел в диапазоне от A до B включительно.

Входные данные

Ввод содержит два целых числа A и B ( - 10^15 ≤ AB ≤ 10^15).

Выходные данные

Выведите одно целое число — количество нечётных чисел, принадлежащих диапазону [ A ; B ].

#define _CRT_SECURE_NOT_WARNINGS
#include<iostream>
#include <stdio.h>
#include <math.h>

int main() {
  long long a = 0;
  long long b = 0;
  long co = 0;
  scanf_s("%ld%ld", &a, &b);

  for (int i = a; i <= b; i++) {
    if (i % 2 == 1) {
      co++;
    }
  }
  printf("%ld", co);
  return co;

}

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

Заранее большое спасибо!

|b-a|/2 + 1 если a или b нечетное

2 лайка