Επιλογή Σελίδας

Δίνεται μία ακολουθία αποτελούμενη από Ν θετικούς ακέραιους αριθμούς. Ζητείται να βρεθεί ο μέγιστος αριθμός της ακολουθίας, ο οποίος διαιρείται ακριβώς από όλους τους αριθμούς που προηγούνται αυτού στην ακολουθία. Προφανώς ο αριθμός που εμφανίζεται πρώτος στην ακολουθία διαιρείται ακριβώς από όλους τους προηγούμενους του (γιατί δεν έχει κανέναν προηγούμενο). Άρα, αν η ακολουθία δεν είναι κενή, υπάρχει πάντα λύση στο πρόβλημα.
23ος Π.Δ.Π (2011) Γ’ Φάση (Θέμα 1ο)

ΛΥΣΗ

ΠΡΟΓΡΑΜΜΑ ΑΣΚ5_ΠΑΡ_Β_ΙΕΠ_prevdiv
ΣΤΑΘΕΡΕΣ
  Ν=10     ! πλήθος εισόδου αριθμών
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α[Ν], i, j, max
  ΛΟΓΙΚΕΣ: prev_div   ! Διαιρείται από όλους τους προηγούμενους

ΑΡΧΗ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΔΙΑΒΑΣΕ Α[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  max <-- Α[1]
  ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Ν
      ΑΝ Α[i] > max TOTE
         prev_div <-- ΑΛΗΘΗΣ
         j <-- 1
         ΟΣΟ j<i ΚΑΙ prev_div = ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ
             ΑΝ Α[i] MOD Α[j] <> 0 ΤΟΤΕ
                prev_div <-- ΨΕΥΔΗΣ
            ΤΕΛΟΣ_ΑΝ
            j <-- j + 1
         ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
         ΑΝ prev_div = ΑΛΗΘΗΣ ΤΟΤΕ
            max <-- Α[i]
         ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ max
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

! Ενδεικτική Είσοδος: 6 3 7 2 6 21 14 42 63 84, Έξοδος: 42
Share This