xrisakap Δημοσ. 20 Απριλίου 2019 Δημοσ. 20 Απριλίου 2019 θα ηθελα να ρωτησω πως μπορω να βρω τους πρωτους αριθμους σε prolog;
ajaxmonkey4hire Δημοσ. 20 Απριλίου 2019 Δημοσ. 20 Απριλίου 2019 https://github.com/skatenerd/prolog-prime-factors/blob/master/src/factorization.pl
White_Cat Δημοσ. 24 Απριλίου 2019 Δημοσ. 24 Απριλίου 2019 Παιδιά, καλημέρα ! Το μήνυμα αυτό το είδα μόλις τώρα, γιατί είχα πολύ καιρό να μπω στο insomnia. Έτσι σκάρωσα λίγο κώδικα στα γρήγορα. Προφανώς και δεν ξέρω άμα αυτή είναι η βέλτιστη υλοποίηση. Έγραψα το κατηγόρημα πρώτος(Χ) που απλά ελέγχει αν ένας δεδομένος ακέραιος Χ είναι πρώτος. Χρησιμοποιώ ως βοηθητικό κατηγόρημα, την έκφραση 'διαιρείται(Χ,Υ)' η οποία αληθεύει αν ο Υ είναι διαιρέτης του Χ. Οι γνώσεις μου στην Prolog και στο δηλωτικό προγραμματισμό γενικότερα δεν είναι πάρα πολλές και γι' αυτό σας παρακαλώ βελτιώστε τον αλγόριθμο αν μπορείτε. Πάντως σε όσες δοκιμές έκανα, τα αποτελέσματα τα βγάζει σωστά. diaireitai(X,Y) :- Y < X, 0 is X mod Y, !. protos(1) :- !. protos(2) :- !. protos(3) :- !. protos(5) :- !. protos(Q) :- 0 is Q mod 2, fail. protos(Q) :- Q1 is Q-1, forall(between(3,Q1,X), not(diaireitai(Q,X))). Καλό Πάσχα με υγεία, Ο Άσπρος Γάτος 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα