X

Zmaga.com | Zmagajmo z znanjem  
Programi Programski jeziki C++  
  Kliknite tukaj, da si ogledate profil, kot ga vidijo drugi

Ali je število praštevilo

 
  Delite vsebino na Twitterju   Delite vsebino na Facebooku
  V Microsoft Visual C++ Express bomo napisali enostavno funkcijo, ki bo preverila, ali je določeno število praštevilo.
 
 
1
 
 
  Praštevilo je naravno število, če ima točno dva pozitivna delitelja, število 1 in pa samega sebe.

Da napišemo program za preverjanje praštevil, najprej preko menija File -> New -> Project ustvarimo nov projekt.


 
 
2
 
 
  Izberemo Win32 Console Application.
 
 
3
 
 
  Projektu določimo še poljubno ime in potrdimo s klikom na gumb OK.

Mojemu projektu sem izbral ime AliPrastevilo.
 
 
4
 
 
  Pod vrhom kode za vrstico #include prilepimo funkcijo, ki bo preverjala praštevila:

bool aliPrastevilo(int x) {
  if (x==1) return false;
  bool prastevilo = true;
  for (int i = 2; i < x; i++)
  {
    if (x % i == 0) prastevilo = false;
    break;
  }
  return prastevilo;
}

Še razlaga:

bool aliPrastevilo(int x) {
Funkcija sprejeme argument x, ki predstavlja celo število, vrača pa boolean vrednost true ali false.

if (x==1) return false;
Ta vrstica predstavlja izjemo, saj število ena ni praštevilo, ker ima samo enega delitelja.

bool prastevilo = true;
Na začetku privzamemo, da je število res praštevilo. V kolikor bomo ugotovili, da ima delitelja, bomo to vrednost nastavili na false.

for (int i = 2; i < x; i++)
V zanki se sprehodimo čez vsa števila, ki so manjša od obstoječega števila.

if (x % i == 0) prastevilo = false;
break;
Z operatorjem % preverjamo ostanek pri deljenju. Če je ostanek nič, potem je število deljivo in zato vrednost spremenljivke prastevilo nastavimo na false.

return prastevilo;
Na koncu vrnemo rezultat preverjanja, ki je true ali false.

 
 
 
5
 
 
  Sedaj bomo v glavni funkciji programa uporabili našo kodo.

V funkcijo _tmain dodamo kodo:

    if (aliPrastevilo(4))
        printf("Je prastevilo");
    else
        printf("Ni prastevilo");

    std::cin.get();

V našite testni kodi kličemo funkcijo aliPrastevilo s parametrom 4, lahko pa ga seveda zamenjate s poljubnim številom.

Na podlagi vrnjenega rezultata funkcije z uporabo printf funkcije izpišemo rezultat.

Ker se program takoj po koncu izvajanja zapre, dodamo na koncu še vrstico 
std::cin.get(), s katero programu naložimo, da počaka na vnos uporabnika.


 
 
6
 
 
  Ker smo uporabili funkcijo std::cin, moramo na vrhu kode vključiti še knjižnico

#include <iostream>

v kateri se nahaja funkcija cin.
 
 
7
 
 
  Program sedaj zaženemo ...
 
 
8
 
 
  .. in že lahko vidimo izpis, ali je naše izbrano praštevilo ali ne.
 
 
Komentiraj
 
 
 
 
 
22.5.2012, 20:27
Za bolj optimizirano rešitev je dovolj, če gremo z zanko do korena iz x:
for (int i = 2; i <= (int)sqrt(x); i++)


spremenil: iceburg (23.5.2012 ob 13.58.54)
 
Prijava in registracija
 
 
 
 
 
 
  Zmaga.com | Zmagajmo z znanjem
 
  Zmaga.com ponuja brezplačno in razumljivo učenje računalniških programov, nudi enkraten način spoznavanja z različnimi svetovnimi jeziki, vas s podrobno obrazloženimi recepti nauči kulinarike in vam prežene strahove pred domačimi opravili.