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

Σχετικά απλό πρόγραμμα στην C


theoz21

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

Δημοσ.

Παιδιά γεια χαρά...Είμαι πρωτοετής φοιτητής και μας έχει ζητηθεί σαν άσκηση η δημιουργία προγράμματος που θα βρίσκει όλους τους αριθμούς carmichael μέχρι το 1 εκατομμύριο και η ανάλυσή τους σε ΄πρώτους παραγοντες...Οι συγκεκριμένοι αριθμοί είναι πάντα περιττοί και ελεύθεροι τετραγώνου δηλαδή δεν υπάρχει κάποιος παράγοντας που αν υψωθεί στο τετράγωνο να διαρείται ακριβώς με τον αριθμό carmichael...Επίσης ένας αριθμός N για να είναι carmichael πρέπει να ικανοποιεί ένα κριτήριο το οποίο λέει πως για καθε p που είναι παράγοντας του N ισχύει ότι το p-1 είναι διαιρέτης του N-1...Είναι η πρώτη εργασία στην C άρα τα στοιχεία που θα χρησιμοποιεί το πρόβλημα θα είναι αρκετά στοιχειώδη...Exω κάνει μία προσπάθεια προκειμένου το πρόγραμμα να βρίσκει μόνο ποιοι αριθμοί ειναι carmichael,χωρίς αποτέλεσμα ,παρόλαυτα σας την παραθέτω..Σημείωση δεν μας επιτρέπουν πινακες και ο πρώτος carmichael είναι ο 561...κάθε βοηθεια ευπρόσδεκτη..

# include <stdio.h>

# include <math.h>

#define MAXNUM 1000000

 

main()

{

long N,car;

int parag, done;

N=561;

while (N<=MAXNUM)

{ car=N;

parag=3;

done=0;

while (parag<=sqrt(N) && done==0)

{

if (N % (parag*parag)==0){ /*έλεγχος για το αν είναι ελέυθερος τετραγώνου*/

done=1;}

else

{

while ( car % parag==0)

{

if ((N-1) % (parag -1)==0) /* έλεγχος του κριτηρίου*/

car=car/parag;

else

done=1;

}

}

parag=parag+2;

}

if (done==0){

printf("%ld is carmichael",N);}

N=N+2;

}

}

Δημοσ.
Παιδιά γεια χαρά...Είμαι πρωτοετής φοιτητής και μας έχει ζητηθεί σαν άσκηση η δημιουργία προγράμματος που θα βρίσκει όλους τους αριθμούς carmichael μέχρι το 1 εκατομμύριο και η ανάλυσή τους σε ΄πρώτους παραγοντες...

 

...κάθε βοηθεια ευπρόσδεκτη..

 

1) Πόσοι φοιτητές είστε στην σχολή σας ? Γιατί ήδη τουλάχιστον δύο φοιτητές

ρώτησαν ακριβώς το ίδιο σε δύο φόρουμ. Να ξέρουμε πόσους να περιμένουμε :)

Με μια απλή αναζήτηση θα έβρισκες το thread.

 

2) Μήπως σου πέρασε από το μυαλό ότι θα πρέπει να το λύσεις μόνος σου μια και

πρόκειται για άσκηση της σχολής σου ?

 

3) Υπάρχει φόρουμ της σχολής στο οποίο ο ίδιος ο καθηγητής λύνει απορίες

και έχει ήδη πολλές απαντήσεις για το συγκεκριμένο θέμα.

Δημοσ.

1) Ζητάω βοήθεια για τον δικό μου κώδικα γι'αυτό και δεν σκέφτηκα να ψάξω για παρόμοιο thread...

2)Τίποτα δεν μου απαγορεύει να δεχτώ βοήθεια από τρίτους...Απαγορεύεται να παραδώσω έτοιμο κώδικα που δεν τον έγραψα ο ίδιος..Στην προκειμένη περίπτωση ζητάω βοήθεια για διόρθωση στον ήδη υπάρχοντα κώδικα αφού δεν βρίσκω το λάθος μου..

3)Το ξέρω ότι υπάρχει το forum...

Δημοσ.

Γειά σου και εσένα.

Μιας και είσαι νέος στον προγραμματισμό θα σε συμβούλευα τα εξής::rolleyes:

 

Όταν γράφεις κώδικα σε οποιαδήποτε γλώσσα, στο πρόγραμμά σου να δίνεις στις μεταβλητές σου κατάλληλα ονόματα για το αντικείμενο και το ρόλο τους, όσο μπορείς πιο αναλυτικά και ακόμα καλλύτερα να χρησιμοποιείς σχόλεια για την κάθε λειτουργία της κάθε μεταβλητής.

Μετά απο κάθε βρόχο, loop, κτλπ. που χρησιμοποιείς να αφήνεις τα σχετικά κενά, ώστε να είναι ποιο ευανάγνωστο το πρόγραμμά σου, τόσο σε τρείτους όσο και σε εσένα τον ίδιο σε περίπτωση αναφοράς σφαλμάτων. πχ

:shifty:

while (condition) {

statements;

}

:shifty:

while (condition) {

if (
condition
){

statements;

}

statements;

}

 

με αυτόν τον τρόπο διατηρείς μια συνοχή στο προγραμμά σου.

 

Και φυσικά αφιέρωσε το χρόνο σου στα λάθοι σου, όταν ένα πρόγραμμα δεν τρέχει δεν σημαίνει ότι το ανεβάζουμε στο forum και ζητάμε σχετική βοήθεια. Αυτό σε καμία περίπτωση δεν θα σε κάνει καλό προγραμματιστή, και φυσικά για οποιαδήποτε βοήθεια υπάρχει και ο υπεύθυνος καθηγητής.

 

Ξέρω όλλα αυτά μπορεί να σου φανούν κάπως υπερβολικά για ένα post και μόνο, αλλα πίστεψέ με, και εγώ απο την ίδια θέση με εσένα πέρασα και ακόμα είμαι. Φυσικά όλλα τα παραπάνω είναι καθαρά προσωπική μου γνώμη και μόνο.:-)

Δημοσ.

φίλε fotis4u η γνώμη σου με βρίσκει σύμφωνο...μάλλον έκανα λάθος που το postara...

strat92man είμαι στο τμήμα της πληροφορικής και τηλεπικοινωνιών του πανεπιστημίου αθηνών..

Δημοσ.

Φίλε theoz21 ελπίζω να μην νομίζεις ότι σε κατακρήνουμε όλοι εμείς, σε καμία περίπτωση δεν το κάνουμε και δεν είχαμε σκοπό αυτό εάν κατά λάθος συνέβει.

 

Πάλεψέ το λίγο, όπως λέμε και στην αργό και εάν δείς ότι κολλάς οπουδήποτε, ενημέρωσέ μας..

Δημοσ.
1) Πόσοι φοιτητές είστε στην σχολή σας ? Γιατί ήδη τουλάχιστον δύο φοιτητές

ρώτησαν ακριβώς το ίδιο σε δύο φόρουμ. Να ξέρουμε πόσους να περιμένουμε :)

Με μια απλή αναζήτηση θα έβρισκες το thread.

 

http://www.freestuff.gr/forums/viewtopic.php?t=52849

Δημοσ.

 

:)

 

 

 

[RANT]

Για αυτό σε άλλες χώρες γίνονται σοβαρά project (π.χ στην Ουγγαρία έφτιαξαν

το mplayer) ενώ στην Ελλάδα έχουμε ένα κάρο self-proclaimed επιστήμονες

της Πληροφορικής που όλοι έχουν καταπληκτικά επιτεύγματα στο ενεργητικό τους

όπως μετατροπείς Greeklish<->Ελληνικά.

[/RANT]

 

 

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

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