Izpitno vprašanje DIRI2005 1700

Iz MaFiRaWiki

Predmet Dopolnilno izobraževanje iz računalništva in informatike (DIRI)


Vprašanje

Praštevilo, katerega vsota števk je praštevilo, imenujemo praštevilo števk. Sestavi metodo, ki za dano število preveri, če je praštevilo števk.

Odgovor

Do rešitve pridemo v treh korakih:

  • Sestavimo metodo, ki vrne vsoto števk.

  1. //metoda za racunanje vsote stevk
  2. public static int vsotaStevk (int stevilo) {
  3. int vsota = 0;
  4. while (stevilo > 0) {
  5. vsota = vsota + stevilo % 10;
  6. stevilo = stevilo / 10;
  7. }
  8. return vsota;
  9. }
  • Sestavimo metodo, s katero preverimo, ali je število praštevilo. V tej metodi preverjamo, ali obstaja na intervalu med 2 in √n delitelj tega števila. Če takega delitelja ni, je število praštevilo.

  1. // metoda za dolocanje prastevil
  2. public static boolean jePrastevilo (int stevilo) {
  3. int i = 2;
  4. while (i <= Math.sqrt(stevilo)) {
  5. if (stevilo % i == 0) return false;
  6. i = i + 1;
  7. }
  8. return true;
  9. }
  • Uporabimo zgornji metodi in sestavimo metodo, ki preveri, ali je vsota števk praštevila praštevilo.

  1. //metoda za ugotavljanje ali je vsota stevk prastevila prastevilo
  2. public static boolean jePrasteviloStevk (int stevilo) {
  3. if (jePrastevilo (stevilo) && jePrastevilo(vsotaStevk(stevilo))) return true;
  4. return false;
  5. }
Osebna orodja