Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek

©2026 mgr Jerzy Wałaszek

Liczby parzyste i nieparzyste

SPIS TREŚCI
Podrozdziały

Problem

W przedziale całkowitym \([a;b]\) wyszukaj wszystkie liczby parzyste/nieparzyste.

Liczby parzyste

W wielu algorytmach musimy wygenerować liczby parzyste z zadanego przedziału \([a;b]\) liczb całkowitych. Tego typu zadanie rozwiązujemy stosując podejście nr 2. Ponieważ granice przedziału \(a\) i \(b\) mogą być dowolnymi liczbami całkowitymi, musimy najpierw znaleźć najmniejszą liczbę parzystą z przedziału \([a;b]\).

  1. Jeśli \(a\) jest parzyste, to najmniejszą liczbą parzystą w tym przedziale będzie właśnie \(a\).
  2. Jeśli \(a\) nie jest parzyste, to najmniejszą liczbą parzystą będzie \({a + 1}\).

Parzystość \(a\) sprawdzimy badając resztę z dzielenia \(a\) przez \(2\). Jeśli reszta jest zerowa, to \(a\) jest liczbą parzystą. Jeśli \(a\) nie jest liczbą parzystą, to:

  1. Reszta wynosi \(1\) dla \(a > 0\)
  2. Reszta wynosi \(-1\) dla \(a < 0\)

Z powyższego wnioskujemy, iż pierwszą liczbę parzystą w przedziale całkowitym \([a;b]\) otrzymamy następująco:

\(i = a\)
Jeśli reszta z dzielenia \(a\) przez \(2\) jest różna od \(0\), to zwiększ \(i\) o \(1\)

Następna liczba parzysta jest zawsze o \(2\) większa. Podsumowując otrzymujemy następujący, prosty algorytm generacji liczb parzystych w przedziale całkowitym \([a;b]\):

Algorytm generacji liczb parzystych

Wejście:

\(a\) : początek przedziału; \(a \in \mathbb{Z}\)
\(b\) : koniec przedziału; \(b \in \mathbb{Z}, a < b\).

Wyjście:

Kolejne liczby parzyste zawarte w przedziale \([a;b]\).

Zmienna pomocnicza

\(i\) : przebiega przez kolejne liczby parzyste w przedziale \([a;b]\); \(i \in \mathbb{Z}\).

Lista kroków:

K01: i ← a ; obliczamy pierwszą liczbę parzystą
K02: Jeśli a mod 2 ≠ 0, 
     to ii + 1
K03: Dopóki ib: ; generujemy liczby parzyste w przedziale [a;b]
     wykonuj kroki K04…K05
K04:   Pisz i ; wyprowadzamy liczbę parzystą
K05:   i  i + 2 ; następna liczba parzysta
K06: Zakończ

Przykładowe programy

 Uwaga:

Zanim uruchomisz program, przeczytaj wstęp do tego artykułu, w którym wyjaśniamy funkcje tych programów oraz sposób korzystania z nich.

Program spodziewa się w pierwszym wierszu liczb \(a\) i \(b\). W kolejnych wierszach wyświetla liczby parzyste zawarte w przedziale \([a;b]\).
Pascal
// Liczby parzyste
// Data: 11.03.2008
// (C)2020 mgr Jerzy Wałaszek
//----------------------------

program prg;

var a, b, i : longint;

begin
  readln(a, b);
  i := a;
  if(a mod 2 <> 0) then
    inc(i);
  while(i <= b) do
  begin
    write(i, ' ');
    inc(i, 2);
  end;
  writeln;
end.
C++
// Liczby parzyste
// Data: 11.03.2008
// (C)2020 mgr Jerzy Wałaszek
//----------------------------
#include <iostream>

using namespace std;

int main()
{
  int a, b, i;

  cin >> a >> b;
  i = a;
  if(a%2) i++;
  while(i <= b)
  {
    cout << i << " ";
    i += 2;       
  }
  cout << endl;
  return 0;
}
Basic
' Liczby parzyste
' Data: 11.03.2008
' (C)2020 mgr Jerzy Wałaszek
'----------------------------

Dim As Integer a, b, i

Input a, b
i = a
If a Mod 2 Then _
  i += 1
While i <= b
  Print i;" ";
  i += 2
Wend
Print
End
Python (dodatek)
# Liczby parzyste
# Data: 01.02.2023
# (C)2023 mgr Jerzy Wałaszek
#----------------------------

a = int(input("a = "))
b = int(input("b = "))
i = a+a%2
while i <= b:
    print(i, end=" ")
    i += 2
print()
Wynik:
-3 15
-2 0 2 4 6 8 10 12 14
JavaScript
<html>
  <head>
    <title>
      Liczby parzyste
    </title>
  </head>
  <body>
<div style="overflow-x: auto;"
     align="center">
  <table
  border="0"
  cellpadding="4"
  style="border-collapse:
         collapse">
    <tr>
      <td nowrap>
        <form
        name="frm1"
        style="text-align: center;
               background-color:
               #E7E7DA">
          <b><br>
          Liczby parzyste
          <br/></b>
          &nbsp;&nbsp;
          (C)2026 mgr Jerzy Wałaszek
          &nbsp;&nbsp; 
          
          <hr>
          a = <input
              type="text"
              name="inp_a"
              size="16"
              value="-10"
              style="text-align:
              right">
          <br>
          b = <input
              type="text"
              name="inp_b"
              size="16"
              value="10"
              style="text-align:
              right">
          <hr>
          <input
          type="button"
          value="Wykonaj"
          name="B1"
          onclick="main1()">
          <hr>
          <b>Wynik:</b>
          <div id="out1">.</div>
        </form>
      </td>
    </tr>
  </table>
</div>
   
<script type=text/javascript
        language=javascript>

// Liczby parzyste
// Data   : 11.03.2008
// (C)2008 mgr Jerzy Wałaszek
//----------------------------

function main1( )
{
  var a, b, t, i;
 
  a = parseInt(document
      .frm1.inp_a.value, 10);
  b = parseInt(document
      .frm1.inp_b.value, 10);
  if(isNaN(a) || isNaN(b))
    t = "Złe dane wejściowe !!!";
  else
  {
    t = "";
    i = a;
    if(a % 2)
      i++;
    while(i <= b)
    {
      t += i + " ";
      i += 2;
    }
  }
  document.getElementById("out1")
  .innerHTML = t;
}

</script>
  </body>
</html>
Liczby parzyste
   (C)2026 mgr Jerzy Wałaszek   
a =
b =

Wynik:
.

do podrozdziału  do strony 

Liczby nieparzyste

Liczby nieparzyste generujemy w identyczny sposób: wyznaczamy pierwszą liczbę nieparzystą w przedziale \([a;b]\), a kolejne są o \(2\) większe. Jeśli \(a\) jest nieparzyste, to pierwsza liczba nieparzysta jest równa \(a\), w przeciwnym razie jest o \(1\) większa.

Poniższy program czyta krańce przedziału \([a;b]\) i wyświetla wszystkie kolejne liczby nieparzyste zawarte w tym przedziale.


Przykładowe programy

 Uwaga:

Zanim uruchomisz program, przeczytaj wstęp do tego artykułu, w którym wyjaśniamy funkcje tych programów oraz sposób korzystania z nich.

Program spodziewa się w pierwszym wierszu liczb \(a\) i \(b\).
Pascal
// Liczby nieparzyste
// Data: 11.03.2008
// (C)2020 mgr Jerzy Wałaszek
//----------------------------

program prg;

var a, b, i : longint;

begin
  readln(a, b);
  i := a;
  if(a mod 2 = 0) then
    inc(i);
  while(i <= b) do
  begin
    write(i, ' ');
    inc(i, 2);
  end;
  writeln;
end.
C++
// Liczby nieparzyste
// Data: 11.03.2008
// (C)2020 mgr Jerzy Wałaszek
//----------------------------

#include <iostream>

using namespace std;

int main()
{
  int a, b, i;

  cin >> a >> b;
  i = a;
  if(!(a%2)) i++;
  while(i <= b)
  {
    cout << i << " ";
    i += 2;       
  }
  cout << endl;
  return 0;
}
Basic
' Liczby nieparzyste
' Data: 11.03.2008
' (C)2020 mgr Jerzy Wałaszek
'----------------------------

Dim As Integer a, b, i

Input a, b
i = a
If a Mod 2 = 0 Then _
  i += 1
While i <= b
  Print i;" ";
  i += 2
Wend
Print
End
Python (dodatek)
# Liczby nieparzyste
# Data: 01.02.2023
# (C)2023 mgr Jerzy Wałaszek
#----------------------------

a = int(input("a = "))
b = int(input("b = "))
i = a+1-(a%2)
while i <= b:
    print(i, end=" ")
    i += 2
print()
Wynik:
-10 10
-9 -7 -5 -3 -1 1 3 5 7 9
JavaScript
<html>
  <head>
    <title>
      Liczby
      nieparzyste
    </title>
  </head>
  <body>
<div style="overflow-x: auto;"
            align="center">
  <table
  border="0"
  cellpadding="4"
  style="border-collapse:
         collapse">
    <tr>
      <td nowrap>
        <form
        name="frm2"
        style="text-align: center;
               background-color:
               #E7E7DA">
          <b><br>
          Liczby nieparzyste<br/></b>
          &nbsp;&nbsp;
          (C)2026 mgr Jerzy Wałaszek
          &nbsp;&nbsp; 
          <hr>
          a = <input
              type="text"
              name="inp_a"
              size="16"
              value="-10"
              style="text-align:
              right">
          <br>
          b = <input
              type="text"
              name="inp_b"
              size="16"
              value="10"
              style="text-align:
              right">
          <hr>
          <input
          type="button"
          value="Wykonaj"
          name="B3"
          onclick="main2()">
          <hr>
          <b>Wynik:</b>
          <div id="out2">.</div>
        </form>
      </td>
    </tr>
  </table>
</div>

<script type=text/javascript
        language=javascript>

// Liczby nieparzyste
// Data   : 11.03.2008
// (C)2008 mgr Jerzy Wałaszek
//----------------------------

function main2( )
{
  var a, b, t, i;
 
  a = parseInt(document
      .frm2.inp_a.value, 10);
  b = parseInt(document
      .frm2.inp_b.value, 10);
  if(isNaN (a) || isNaN (b))
    t = "Złe dane wejściowe !!!";
  else
  {
    t = "";
    i = a;
    if(a % 2 == 0) i++;
    while(i <= b)
    {
      t += i+" ";
      i += 2;
    }
  }
  document.getElementById("out2")
  .innerHTML = t;
}

</script>
  </body>
</html>
Liczby nieparzyste
   (C)2026 mgr Jerzy Wałaszek   
a =
b =

Wynik:
.

do podrozdziału  do strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2026 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.