Επίλυση του προβλήματος 3 του Project Euler: Άρθρο για Blog

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

Στο παρόν άρθρο, θα εξετάσουμε την επίλυση του τρίτου προβλήματος του Project Euler, ένα πρόβλημα που απαιτεί να βρεθεί το μεγαλύτερο πρώτο παράγοντας ενός δοσμένου αριθμού.

Αλγόριθμος Επίλυσης

Για να επιλύσουμε το πρόβλημα, χρησιμοποιούμε έναν απλό αλγόριθμο παραγοντοποίησης. Ο αλγόριθμος περιλαμβάνει τα εξής βήματα:

  1. Αρχικοποιούμε τον αριθμό που θέλουμε να παραγοντοποιήσουμε.
  2. Ξεκινάμε με τον αριθμό 2 και επαναλαμβάνουμε μέχρι να φτάσουμε τον αριθμό ίσο με τον αριθμό που προσπαθούμε να παραγοντοποιήσουμε.
  3. Αν ο αριθμός είναι πρώτος, τότε είναι ο μεγαλύτερος παράγοντας και τερματίζουμε τον αλγόριθμο.
  4. Αν ο αριθμός είναι παράγοντας του αριθμού που προσπαθούμε να παραγοντοποιήσουμε, τότε τον αφαιρούμε από τον αριθμό και επαναλαμβάνουμε το βήμα 3.
  5. Στο τέλος, ο μεγαλύτερος παράγοντας που αφήνει τον αριθμό ως υπόλοιπο είναι ο μεγαλύτερος πρώτος παράγοντας του αρχικού αριθμού.

Παρακάτω παρουσιάζεται ο κώδικας σε γλώσσα C που υλοποιεί τον παραπάνω αλγόριθμο:


#include <stdio.h>

int main() {
    long long number = 600851475143;
    long long largestPrimeFactor = 2;

    while (number > largestPrimeFactor) {
        if (number % largestPrimeFactor == 0) {
            number /= largestPrimeFactor;
        } else {
            largestPrimeFactor++;
        }
    }

    printf("Ο μεγαλύτερος πρώτος παράγοντας του αριθμού 600851475143 είναι: %lld\n", largestPrimeFactor);

    return 0;
}
  

Με την εφαρμογή του παραπάνω αλγορίθμου, καταφέρνουμε να επιλύσουμε το τρίτο πρόβλημα του Project Euler και να βρούμε τον μεγαλύτερο πρώτο παράγοντα του αριθμού 600851475143.

Comments

Popular posts from this blog

9 Tips for Writing Better Code: From Keeping it Simple to Refactoring