Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα.Έχω το εξής πρόβλημα...Πρόκειται για μια άσκηση στην οποία πρέπει να βρω το πλήθος των πρώτων αριθμών σε ένα διάστημα MINNUM,MAXNUM όπου MINNUM=1990000001 και MAXNUM=2000000000.post-313047-0-90627200-1415046059_thumb.png Έχω υλοποιήσει τον κώδικα,παρ'όλα αυτα δεν φαίνεται να λειτουργεί σωστά...Καμία ιδέα??

  • Απαντ. 53
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Την ίδια άσκηση είχε και ένα παιδί τώρα τελευταία. Ψάξε λίγο πιο πίσω να βρεις το νήμα και να πάρεις πληροφορίες.

 

Επειδή οι αριθμοί που ψάχνεις είναι αρκετοί, δοκίμασε με μικρότερο εύρος να δεις πως πάει.

Δημοσ.

Ναι το είδα..Μάλλον θα είναι στο ίδιο τμήμα με εμένα(Πληροφορική και Τηλεπικοινωνίες)..Έχουμε μια εργασία και ένα κομμάτι είναι αυτή η άσκηση. Πάντως με  μικρότερο εύρος βγαίνει μια χαρά το αποτέλεσμα,το θέμα είναι γιατί δεν εμφανίζει τίποτα στην έξοδο στην συγκεκριμένη περίπτωση

Δημοσ.

Υπάρχει άλλος τρόπος για να είναι πιο γρήγορο και αποτελεσματικό?Γιατί ο καθηγητής μας έδειξε ένα παράδειγμα για το πως θα πρέπει να εμφανίζεται και χρησιμοποιώντας την συνάρτηση clock() εμφάνιζε αποτέλεσμα σε  90 sec 

Δημοσ.

Υπάρχει άλλος τρόπος για να είναι πιο γρήγορο και αποτελεσματικό?Γιατί ο καθηγητής μας έδειξε ένα παράδειγμα για το πως θα πρέπει να εμφανίζεται και χρησιμοποιώντας την συνάρτηση clock() εμφάνιζε αποτέλεσμα σε  90 sec

Διάβασες τα μηνύματα του albNik στο άλλο νήμα ?

 

Έκανες κάποιο ψάξιμο για "αλγόριθμος εύρεσης πρώτων αριθμών" ή κάτι παρόμοιο ?

Δημοσ.

@imitheos Ναι τα διάβασα αλλά δεν έχω καταλάβει τον τρόπο με τον οποίο θα υλοποιήσω αλγόριθμο για να βγάλω κάποιο αποτέλεσμα..

 

Θα βρεις πρωτα τους πρώτους 1μεχρι sqrt(2000000000) δλδ {2,3,5... μεχρι  45000 περίπου}.

 

Εχεις 10 000 000 αριθμους για ελεγχο

 

Ξεκινας με το 2 και "μαρκαρεις" ως συνθετο τον πρωτο Ν που διαρειται με 2 , και τους επομενους Ν+2, Ν+4 ... 

μετα με το 3 και μαρκαρεις ως συνθετο τον πρωτο Ν που διαρειται με 3  και Ν+3, Ν+6 ... 

μετά με το 5 και μαρκαρεις ως συνθετο τον πρωτο Ν που διαρειται με 5 και Ν+5, Ν+10 ... 

 

.....

Επίσης πως θα ενσωματώσω στον αλγόριθμο την έκφραση "μαρκάρεις"?έχω ψάξει αρκετά αλλά δεν με βοηθάνε πολύ αυτά που βρίσκω γι'αυτό κάνω τις ερωτήσεις εδώ μήπως καταφέρω να λύσω το πρόβλημα.

Δημοσ.

Καταλαβαίνεις με ποιά λογική αυτό που έχεις στα χέρια σου αποφαίνεται αν ένας αριθμός είναι πρώτος ή όχι? (άσχετα που αργεί τόσο πολύ με τα συγκεκριμένα νούμερα)

 

Αν καταλαβαίνεις τότε θα καταλαβαίνεις και γιατί δεν έχει νόημα να μαρκάρεις τίποτα (εξάλλου δε σου ζητάνε να βρεις ποιοί είναι οι πρώτοι, μόνο πόσοι είναι).

 

Αν δεν καταλαβαίνεις τότε πριν αρχίσεις να ψάχνεις κι άλλα πράγματα που δεν καταλαβαίνεις, κατάλαβε πρώτα αυτά που έχεις στα χέρια σου.

Δημοσ.

γιατί δεν ξεκινάς με έναν πιο απλό τρόπο;

πότε θεωρείται ένας αριθμός πρώτος; 

 

(αριθμός % 2 != 0)

 

δλδ το 9 είναι πρώτος;

Δημοσ.

Αυτό ακριβώς αναρωτιέμαι και εγώ:P Ρε φίλε μπορείς να μου εξηγήσεις πως θα υλοποιήσω τον αλγόριθμο με αυτό που έχεις αναφέρει και στο άλλο νήμα?

Δημοσ.

Στο αλλο νημα λέω ότι οι μισοί ειναι ζυγοί, το 1/3 διαιρούνται με 3, το 1/5 με 5 το 1/7 με 7 ...

Ε, όσοι μεινουν ειναι πρώτοι

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...