Advertisement
rakoczyn

Prime Numbers - SERVER

Oct 22nd, 2012
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.61 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <limits.h>
  4. int* primes(int n);
  5.  
  6. int main( void )
  7. {
  8.    
  9.     FILE *stream;
  10.     char buffer[LINE_MAX];
  11.     int run;
  12.     if( (stream = fopen( "channel","r+" ) ) )
  13.     {
  14.         run=1;
  15.         printf("%s\n", ":: Serwer uruchomiony.");
  16.         printf("%s\n", ":: Czekam na kontakt z klientem.");
  17.     }
  18.     else
  19.     {
  20.         run=0;
  21.         perror( "!.!..błąd otwarcia łącza..!.!" );
  22.     }
  23.  
  24.     while( run )
  25.     {
  26.        
  27.         int N;
  28.         if( fgets( buffer,256,stream ) )
  29.         {
  30.             fflush(stream);
  31.             sscanf(buffer,"%d\n",&N);
  32.             //int N = (int)buffer[0];
  33.             printf("%s %d %s\n", ":: SERWER Podaje",N,"liczb pierwszych:");
  34.             //fprintf( stream,"%s",buffer );
  35.             int* pierwsze = primes(N);
  36.             for (int i = 0; i < N; ++i)
  37.             {
  38.                 fprintf(stream,"%d\n", pierwsze[i]);
  39.             }
  40.              
  41.             //fflush( stream );
  42.             break;
  43.            
  44.         }
  45.        
  46.     }
  47.  
  48.     printf("%s\n", ":KONIEC:");
  49.     return 0;
  50.    
  51. }
  52.  
  53. int* primes(int n)
  54. {
  55.     // printf("%s%d\n", "Zaczynam dzialanie funkcji primes dla n=",n);
  56.     int* array;
  57.     array = (int*) malloc(n*sizeof(int));
  58.     int primesCount = 0;
  59.     int currentNumber = 2;
  60.     while(primesCount < n)
  61.     {
  62.         // printf("%s%d\n%s%d\n","primesCount=",primesCount,"currentNumber=",currentNumber );
  63.         bool isPrime = true;
  64.         for (int i = 2; i < currentNumber; i++)
  65.         {
  66.             if ((currentNumber % i) == 0)
  67.             {
  68.                 isPrime = false;
  69.                 break;
  70.             }
  71.         }
  72.  
  73.         if (isPrime)
  74.         {
  75.             // printf("%s %d\n","Znaleziono liczbe pierwsza:",currentNumber );
  76.             array[primesCount++] = currentNumber++;
  77.         }
  78.         else
  79.         {
  80.             currentNumber++;
  81.         }
  82.  
  83.         // printf("%s\n", "Nacisnij enter...");
  84.         // int s;
  85.         // scanf("%d",&s);
  86.     }
  87.     return array;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement