Posts

Eπίλυση του προβλήματος 7 του Project Euler

Επίλυση του προβλήματος 7 του Project Euler Επίλυση του προβλήματος 7 του Project Euler Στο παρόν άρθρο, θα εξετάσουμε την επίλυση του έβδομου προβλήματος του Project Euler, το οποίο αφορά τον υπολογισμό του 10001ου πρώτου αριθμού. Αλγόριθμος Επίλυσης Για να επιλύσουμε το πρόβλημα, μπορούμε να χρησιμοποιήσουμε έναν αλγόριθμο που βασίζεται στον έλεγχο κατά πρώτο των αριθμών. Ξεκινάμε με έναν αριθμό 2 και συνεχίζουμε να αυξάνουμε τον αριθμό κατά 1 σε κάθε επανάληψη. Για κάθε αριθμό, ελέγχουμε αν είναι πρώτος. Αν είναι πρώτος, αυξάνουμε τον μετρητή και ελέγχουμε αν έχουμε φτάσει στον 10001ο πρώτο αριθμό. Αν έχουμε φτάσει, τότε εμφανίζουμε τον αριθμό και τερματίζουμε το πρόγραμμα. Αν δεν έχουμε φτάσει, συνεχίζουμε τον έλεγχο για τον επόμενο αριθμό. Παρακάτω παρουσιάζεται ο κώδικας σε γλώσσα C που υλοποιεί τον παραπάνω αλγόριθμο: #include <stdio.h> #include <stdbool.h> bool isPrime(int num) { if (num <= 1) return false; for (...

Επίλυση του προβλήματος 6 του Project Euler

Επίλυση του προβλήματος 6 του Project Euler Επίλυση του προβλήματος 6 του Project Euler Στο παρόν άρθρο, θα εξετάσουμε την επίλυση του έκτου προβλήματος του Project Euler, ένα πρόβλημα που αφορά το άθροισμα των τετραγώνων των πρώτων εκατό φυσικών αριθμών και το τετράγωνο του αθροίσματός τους. Αλγόριθμος Επίλυσης Για να επιλύσουμε το πρόβλημα, μπορούμε να χρησιμοποιήσουμε τον τύπο για το άθροισμα των τετραγώνων των πρώτων εκατό φυσικών αριθμών και το τετράγωνο του αθροίσματός τους. Ακολουθούμε τα εξής βήματα: Υπολογίζουμε το άθροισμα των τετραγώνων των πρώτων εκατό φυσικών αριθμών. Υπολογίζουμε το τετράγωνο του αθροίσματος των πρώτων εκατό φυσικών αριθμών. Υπολογίζουμε τη διαφορά ανάμεσα στο τετράγωνο του αθροίσματος και το άθροισμα των τετραγώνων και εμφανίζουμε το αποτέλεσμα. Παρακάτω παρουσιάζεται ο κώδικας σε γλώσσα C που υλοποιεί τον παραπάνω αλγόριθμο: #include <stdio.h> int main() { int sumOfSquares = 0; in...

Πρόβλημα 5/ Project Euler

Επίλυση του προβλήματος 5 του Project Euler Επίλυση του προβλήματος 5 του Project Euler Στο παρόν άρθρο, θα εξετάσουμε την επίλυση του πέμπτου προβλήματος του Project Euler, ένα πρόβλημα που αφορά τον ελάχιστο κοινό πολλαπλάσιο (ΕΚΠ) των αριθμών από 1 έως και έναν δοθέντα αριθμό. Αλγόριθμος Επίλυσης Για να επιλύσουμε το πρόβλημα, μπορούμε να χρησιμοποιήσουμε τον αλγόριθμο του "Σημαίνει και Κυρίαρχος", όπου κάνουμε χρήση του γεγονότος ότι το ΕΚΠ δύο αριθμών μπορεί να υπολογιστεί με βάση τον αλγόριθμο του Μέγιστου Κοινού Διαιρέτη. Ακολουθούμε τα εξής βήματα: Αρχικοποιούμε μια μεταβλητή smallestMultiple με την τιμή 1, η οποία θα αποθηκεύει το ελάχιστο κοινό πολλαπλάσιο. Ξεκινάμε έναν βρόχο επανάληψης από το 1 έως τον δοθέντα αριθμό. Ελέγχουμε αν ο τρέχον αριθμός διαιρείται ακριβώς με το ελάχιστο κοινό πολλαπλάσιο. Αν όχι, προχωράμε στο επόμενο βήμα. Χρησιμοποιούμε τον αλγόριθμο του Μέγιστου Κοινού Διαιρέτη για να υπολογίσουμε ...
Επίλυση του προβλήματος 4 του Project Euler Επίλυση του προβλήματος 4 του Project Euler Στο παρόν άρθρο, θα εξετάσουμε την επίλυση του τέταρτου προβλήματος του Project Euler, ένα πρόβλημα που απαιτεί να βρεθεί το μεγαλύτερο παλίνδρομο γινόμενο τριψήφιων αριθμών. Αλγόριθμος Επίλυσης Για να επιλύσουμε το πρόβλημα, χρησιμοποιούμε έναν απλό αλγόριθμο που περιλαμβάνει τα εξής βήματα: Αρχικοποιούμε δύο μεταβλητές για την αποθήκευση του μεγαλύτερου παλινδρομικού γινομένου και των δύο αριθμών που το παράγουν. Ξεκινάμε με δύο βρόχους επανάληψης για την παραγωγή όλων των πιθανών γινομένων δύο τριψήφιων αριθμών. Ελέγχουμε αν το γινόμενο είναι παλίνδρομο. Αν είναι, ελέγχουμε αν είναι μεγαλύτερο από το προηγούμενο μεγαλύτερο παλίνδρομο γινόμενο και, αν ναι, το ενημερώνουμε μαζί με τους αριθμούς που το παράγουν. Παρακάτω παρουσιάζεται ο κώδικας σε γλώσσα C που υλοποιεί τον παραπάνω αλγόριθμο: #include <stdio.h> int isPalindrome(int numb...
Επίλυση του προβλήματος 3 του Project Euler: Άρθρο για Blog Επίλυση του προβλήματος 3 του Project Euler Στο παρόν άρθρο, θα εξετάσουμε την επίλυση του τρίτου προβλήματος του Project Euler, ένα πρόβλημα που απαιτεί να βρεθεί το μεγαλύτερο πρώτο παράγοντας ενός δοσμένου αριθμού. Αλγόριθμος Επίλυσης Για να επιλύσουμε το πρόβλημα, χρησιμοποιούμε έναν απλό αλγόριθμο παραγοντοποίησης. Ο αλγόριθμος περιλαμβάνει τα εξής βήματα: Αρχικοποιούμε τον αριθμό που θέλουμε να παραγοντοποιήσουμε. Ξεκινάμε με τον αριθμό 2 και επαναλαμβάνουμε μέχρι να φτάσουμε τον αριθμό ίσο με τον αριθμό που προσπαθούμε να παραγοντοποιήσουμε. Αν ο αριθμός είναι πρώτος, τότε είναι ο μεγαλύτερος παράγοντας και τερματίζουμε τον αλγόριθμο. Αν ο αριθμός είναι παράγοντας του αριθμού που προσπαθούμε να παραγοντοποιήσουμε, τότε τον αφαιρούμε από τον αριθμό και επαναλαμβάνουμε το βήμα 3. Στο τέλος, ο μεγαλύτερος παράγοντας που αφήνει τον αριθμό ως υπόλοιπο είναι ο μεγαλύτερος π...
Επίλυση του προβλήματος 2 του Project Euler Επίλυση του προβλήματος 2 του Project Euler Στο παρόν άρθρο, θα εξετάσουμε την επίλυση του δεύτερου προβλήματος του Project Euler, ένα πρόβλημα που απαιτεί τον υπολογισμό της αθροιστικής τιμής των άρτιων όρων της ακολουθίας Fibonacci μέχρι ένα προκαθορισμένο ανώτατο όριο. Αλγόριθμος Επίλυσης Για να επιλύσουμε το πρόβλημα, χρησιμοποιούμε μια απλή προσέγγιση. Ο αλγόριθμος μας περιλαμβάνει τα εξής βήματα: Αρχικοποιούμε δύο μεταβλητές για να αποθηκεύσουμε τους δύο προηγούμενους όρους της ακολουθίας Fibonacci, F 1 και F 2 , με τις αρχικές τιμές 1 και 2 αντίστοιχα. Αρχικοποιούμε μια μεταβλητή για το άθροισμα των άρτιων όρων με την αρχική τιμή 0. Επαναλαμβάνουμε μέχρις ότου ο προηγούμενος όρος της ακολουθίας Fibonacci να ξεπεράσει το προκαθορισμένο ανώτατο όριο. Κάθε φορά που έχουμε αρτιό όρο, τον προσθέτουμε στο άθροισμα. Τέλος, εκτυπώνουμε το τελικό άθροισμα. Παρακάτω παρουσιάζεται ο κ...
Επίλυση του προβλήματος 1 του Project Euler Επίλυση του προβλήματος 1 του Project Euler Στο παρόν άρθρο, θα εξετάσουμε την επίλυση του πρώτου προβλήματος του Project Euler, ένα δημοφιλές πρόγραμμα ασκήσεων που απαιτεί την επίλυση μαθηματικών προβλημάτων με χρήση προγραμματισμού. Το πρόβλημα αυτό επικεντρώνεται στον υπολογισμό του άθροισματος όλων των φυσικών αριθμών κάτω του 1000 που είναι πολλαπλάσια του 3 ή του 5. Αλγόριθμος Επίλυσης Για να επιλύσουμε το πρόβλημα, χρησιμοποιούμε μια απλή προσέγγιση με τη χρήση της γλώσσας προγραμματισμού C. Ο αλγόριθμος μας περιλαμβάνει τα εξής βήματα: Δημιουργούμε μια μεταβλητή με την τιμή 0 για να αποθηκεύσουμε το άθροισμα των πολλαπλασίων. Επαναλαμβάνουμε όλους τους φυσικούς αριθμούς από το 1 έως το 999. Για κάθε αριθμό, ελέγχουμε αν είναι πολλαπλάσιο του 3 ή του 5. Αν είναι, προσθέτουμε τον αριθμό στο άθροισμα. Τέλος, εκτυπώνουμε το τελικό άθροισμα. Παρακάτω παρουσιάζεται ο κώδικας σε γλώ...