plik


--- euklid.c ------------------------------------- #include #include /** Realizacja alg. Euklidesa: zwraca NWD dla n i m dodatnich */ int euklid( int n, int m ) { int r= n % m; /* r < m */ #ifdef DEBUG printf( "n=%3i m= %3i r=%3i\n", n, m, r ); #endif while( r > 0 ) { n= m; m= r; r= n % m; #ifdef DEBUG printf( "n=%3i m= %3i r=%3i\n", n, m, r ); #endif } return m; } /* Test euklid */ main( int argc, char * argv[] ) { int n= argc > 1 ? atoi( argv[1] ) : 83; int m= argc > 2 ? atoi( argv[2] ) : 43; printf( "NWD(%i,%i)=%i\n", n, m, euklid( n, m ) ); return 0; } -------------------------------------------------- --- div.c ---------------------------------------- #include #include /** intdiv: dzielenie calkowite n / m reszta wstawiana jest do *r */ int intdiv( int n, int m, int *r ) { int d= 0; *r= n; while( *r >= m ) { d++; (*r) -= m; } return d; } /* Test intdiv */ main( int argc, char * argv[] ) { int n= argc > 1 ? atoi( argv[1] ) : 5; int m= argc > 2 ? atoi( argv[2] ) : 2; int r; int d= intdiv( n, m, &r ); printf( "%i/%i=%i r. %i\n", n, m, d, r ); return 0; } -------------------------------------------------- --- sito.c --------------------------------------- #include #include #define MAXLINE 50 /** Sito Eratostenesa: wybiera l. pierwsze z zakresu 1..n s[n]: tablica robocza */ void sito( int n, int s[] ) { int i, j; for( i= 0; i < n; i++ ) s[i]= 1; for( i= 2; i < n; i++ ) if( s[i-1] ) for( j=i; j*i <= n; j++ ) s[i*j-1]= 0; } /* Test sito */ main( int argc, char * argv[] ) { int n= argc > 1 ? atoi( argv[1] ) : 1000; int *s= malloc( sizeof( int ) * n ); if( s == NULL ) { fprintf( stderr, "Not enough memory for n=%i\n", n ); return 1; } else { int i; int nchars= 0; sito( n, s ); #ifdef DEBUG /* Kontrolny wydruk tablicy s */ for( i= 0; i < n; i++ ) printf( "%i ", s[i] ); printf( "\n" ); #endif printf( "Liczby pierwsze <= %i:\n", n ); for( i= 0; i < n; i++ ) if( s[i] ) { nchars += printf( "%6i ", i+1 ); if( nchars >= MAXLINE ) { printf( "\n" ); nchars= 0; } } } return 0; } -------------------------------------------------- --- pier.c --------------------------------------- #include #include /** pierwsza: sprawdza, czy n jest l. pierwsza */ int pierwsza( int n ) { int i= 2; for( ; i*i < n; i++ ) if( n % i == 0 ) return 0; /* n dzieli sie przez i - nie jest pierwsza */ return 1; /* sprawdzilismy wszystkie liczby <2,sqrt(n)> n jest l. pierwsza */ } /* Test pierwsza */ main( int argc, char **argv ) { if( argc > 0 ) while( --argc ) { ++argv; printf( "%s %s liczba pierwsza\n", *argv, pierwsza( atoi( *argv ) ) ? "jest" : "nie jest" ); } return 0; } --------------------------------------------------

Wyszukiwarka

Podobne podstrony:
Algorytmy I Struktury Danych (Wyklady) info
Algorytmy i struktury danych Wyklad 4
Algorytmy i struktury danych Wyklad 3
Algorytmy i struktury danych Prosty program Simulated Annealing
Algorytmy i struktury danych (wykłady)
Algorytmy i struktury danych Wyklad 1
Algorytmy i struktury danych Wyklad 2
notatek pl W,matematyka,Algorytmy i Struktury Danych
Algorytmy i struktury danych all
Algorytmy i struktury danych rot
Algorytmy i struktury danych 04 Listy
Algorytmy i Struktury Danych
Algorytmy i struktury danych 02 Rekurencja i złożoność obliczeniowa

więcej podobnych podstron