Διαδρομές
/
Zig
Zig
/
Ασκήσεις
/
Τέλειοι αριθμοί
Τέλειοι αριθμοί

Τέλειοι αριθμοί

Εύκολο

Οδηγίες

Προσδιόρισε αν ένας αριθμός είναι τέλειος, υπερτέλειος ή ελλιπής, με βάση το σύστημα ταξινόμησης του Nicomachus (60 - 120 μ.Χ.) για τους θετικούς ακέραιους.

Ο Έλληνας μαθηματικός Nicomachus επινόησε ένα σύστημα ταξινόμησης των θετικών ακεραίων, στο οποίο κάθε αριθμός ανήκει σε μία και μόνο κατηγορία: στους τέλειους, τους υπερτέλειους ή τους ελλιπείς αριθμούς, με βάση το άθροισμα γνησίων διαιρετών του. Το άθροισμα γνησίων διαιρετών ορίζεται ως το άθροισμα των διαιρετών ενός αριθμού, χωρίς να συμπεριλαμβάνεται ο ίδιος ο αριθμός. Για παράδειγμα, το άθροισμα γνησίων διαιρετών του 15 είναι 1 + 3 + 5 = 9.

Τέλειος αριθμός

Ένας αριθμός είναι τέλειος όταν ισούται με το άθροισμα γνησίων διαιρετών του. Για παράδειγμα:

  • Ο 6 είναι τέλειος αριθμός, γιατί 1 + 2 + 3 = 6
  • Ο 28 είναι τέλειος αριθμός, γιατί 1 + 2 + 4 + 7 + 14 = 28

Υπερτέλειος αριθμός

Ένας αριθμός είναι υπερτέλειος όταν είναι μικρότερος από το άθροισμα γνησίων διαιρετών του. Για παράδειγμα:

  • Ο 12 είναι υπερτέλειος αριθμός, γιατί 1 + 2 + 3 + 4 + 6 = 16
  • Ο 24 είναι υπερτέλειος αριθμός, γιατί 1 + 2 + 3 + 4 + 6 + 8 + 12 = 36

Ελλιπής αριθμός

Ένας αριθμός είναι ελλιπής όταν είναι μεγαλύτερος από το άθροισμα γνησίων διαιρετών του. Για παράδειγμα:

  • Ο 8 είναι ελλιπής αριθμός, γιατί 1 + 2 + 4 = 7
  • Οι πρώτοι αριθμοί είναι ελλιπείς

Εργασία

Υλοποίησε έναν τρόπο να προσδιορίζεις αν ένας δεδομένος αριθμός είναι τέλειος. Ανάλογα με τη γλώσσα προγραμματισμού που χρησιμοποιείς, μπορεί επίσης να χρειαστεί να υλοποιήσεις έναν τρόπο να προσδιορίζεις αν ένας δεδομένος αριθμός είναι υπερτέλειος ή ελλιπής.

Assert

Σε αυτή την άσκηση, ας πούμε ότι θέλουμε αυτός που καλεί τη συνάρτηση να είναι υπεύθυνος να καλέσει τη classify μόνο με μη μηδενική είσοδο. Οπότε φρόντισε η συνάρτηση classify να κάνει assert ότι η είσοδός της δεν είναι μηδέν. Για περισσότερες λεπτομέρειες, δες το Zig Language Reference και την υλοποίηση του std.debug.assert.

Ωστόσο, πρόσεξε ότι αυτή η άσκηση δεν δοκιμάζει προς το παρόν είσοδο 0 (επειδή το std.testing δεν υποστηρίζει ακόμα να περιμένεις ένα panic).

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Zig Exercism

Έτοιμος να ξεκινήσεις την άσκηση Τέλειοι αριθμοί;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Zig με 104 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.