3. Skaitļa reizinātāji un pirmskaitlis

Nākamais klasiskais programmēšanas uzdevums ir skaitļa sadalīšana reizinātājos un noteikšana, vai tas nav pirmskaitlis. Ar reizinātāju sapratīsim skaitli, ar kuru var dalīt doto skaitli bez atlikuma.
 
Programma ir mazliet garāka, tādēļ aplūkosim tās algoritma ideju vārdiskā aprakstā:
  • Jāuzdod jautājums veikt skaitļa ievadi,
  • jāpārbauda, vai ievadītie dati ir skaitlis (ja ievada ne-skaitli, piemēram, burtus, par to programma paziņo un reizinātājus nemeklē,
  • ievadītais skaitlis tiek piešķirts kādam mainīgajam,
  • pirms katra jauna skaitļa pārbaudes reizinātāju mainīgais jāiestata uz 1,
  • reizinātāju skaita mainīgais jāiestata uz 2 (tas ir mazākais reizinātāju skaits -  1 un pats skaitlis),
  • cikla atkārtojumu skaita mainīgais jāiestata uz 1,
  • Scratch nav finkcijas MOD, tāpēc te nevar lietot pieeju "If number mod counter = 0, Then Set factors to Join (factors, counter, space), End If"; tā vietā vienkārši izdarīsim to pašu savādāk: "ja skaitlis, dalīts ar cikla numuru, ir vienāds ar skaitli, dalītu ar cikla numuru, kas noapaļots veselos skaitļos, tad ir atrasts reizinātājs",
  • tad palielinām skaitītāju par 1 un izvadam reizinātāju.
  • Ja reizinātāji ir tikai 1 un pats skaitlis (reizinātāju skaits ir 2), tad tas ir pirmskaitlis.
Programmas kods ietilpst 2 ekrānattēlos, skat. 5., 6. att.

RP koda sākums

5. att. Reizinātāju un pirmskaitļu programmas 1. daļa.

RP koda 2. puse

6. att. Reizinātāju un pirmskaitļu programmas 2. daļa.

R-P programmas saskarne
7. att. Reizinātāju un pirmskaitļu programmas izskats un saite.

Programmu tiešsaistē var padarbināt un papētīt: http://scratch.mit.edu/projects/25716194/

UZDEVUMI:
1. Nomainiet gariņu uz citu tādu, kam ir vairāki tērpi, nokopējiet kodu uz jauno gariņu, meiteni izdzēsiet un veiciet programmā atbilstošas izmaiņas.
2. Izveidojiet programmu, kas atrod ievadīto skaitļu vidējo vērtību.
3. Izveidojiet programmu, kas atrod lielāko un mazāko no vairākiem ievadītajiem skaitļiem.