C++ euresi prwtwn arithmwn

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
dimi1983
Δημοσιεύσεις: 4
Εγγραφή: 04 Ιαν 2008 22:45

C++ euresi prwtwn arithmwn

Δημοσίευση από dimi1983 » 04 Ιαν 2008 22:48

// Read a positive integer N and print all primes up to N

#include <stdio.h>
#include <math.h>

#define DIVIDES(x, y) (!((y)%(x)))

// The following function decides if its argument is a prime number
int is_prime(int n)
{
int i;
double s=sqrt(n);

for(i=2; i<=s; i++)
if(DIVIDES(i, n))
return 0; // n is not a prime
return 1; // n is a prime
}

main()
{
int N, i, ret, k=0;
char str[300];

// Read an integer N from the keyboard
read_int:
printf("Give a positive integer: ");
fgets(str, 300, stdin); // this reads a whole line of input
// in the variable 'str'
ret = sscanf(str, "%d", &N); // reads integer from string variable
if((ret != 1) || (N<=0)) {
printf("Oops! Bad input.\n");
goto read_int;
}

// Print all primes from 2 up to N in 10 positions each
// 7 numbers per screen line
printf("The primes up to %d are the following:\n", N);
for(i=2; i<=N; i++)
if(is_prime(i)) {
k++; // increment counter for primes by 1
printf("%10d", i);
if(DIVIDES(7, k)) printf("\n"); // change line every 7 primes
}
printf("\n%d primes were found from 2 to %d\n", k, N);
}

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

C++ euresi prwtwn arithmwn

Δημοσίευση από dva_dev » 05 Ιαν 2008 13:59

Φαντάζομαι ότι τον κώδικα σου τον έδωσαν σαν άσκηση... :D

Πέρα από τη δήλωση της main και το ότι δεν υπάρχει το αντίστοιχο return (μάλλον return 0; ) δες αυτό:
http://fourier.math.uoc.gr/~mk/prog0001 ... ode11.html

dimi1983
Δημοσιεύσεις: 4
Εγγραφή: 04 Ιαν 2008 22:45

C++ euresi prwtwn arithmwn

Δημοσίευση από dimi1983 » 06 Ιαν 2008 16:24

euxaristw file tin diorthwsa k tin tropopoiisa k ine ok twra

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης