Davidmh_

Untitled

Mar 14th, 2014
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. typedef unsigned int uint;
  2.  
  3. uint two_arrays(uint N){
  4.     uint data[N];
  5.     bool mask[N];
  6.     unsigned int total = 0;
  7.  
  8.     // Initialise data
  9.     for(uint i=0; i<N; i++){
  10.         data[i] = i;
  11.         mask[i] = false;
  12.     }
  13.  
  14.     // Actual computations
  15.     for (uint i=2; i<N; i++){
  16.         if (mask[i] == false){
  17.             for (uint j=2*i; j<N; j+=i){
  18.                 mask[j] = true;
  19.             }
  20.         }
  21.     }
  22.  
  23.     // Count the number.
  24.     for (uint i=2; i<N; i++){
  25.             if (mask[i] == false)
  26.                 total+=data[i];
  27.     }
  28.     return total;
  29. }
  30.  
  31.  
  32. uint array_of_structs(uint N){
  33.     struct {
  34.         unsigned int value;
  35.         bool mask;
  36.     } numbers[N];
  37.  
  38.     unsigned int total = 0;
  39.  
  40.     // Initialise data
  41.     for(uint i=0; i<N; i++){
  42.         numbers[i].value = i;
  43.         numbers[i].mask = false;
  44.     }
  45.  
  46.     // Actual computations
  47.     for (uint i=2; i<N; i++){
  48.         if (numbers[i].mask == false){
  49.             for (uint j=2*i; j<N; j+=i){
  50.                 numbers[j].mask = true;
  51.             }
  52.         }
  53.     }
  54.  
  55.     // Count the number.
  56.     for (uint i=2; i<N; i++){
  57.         if (numbers[i].mask == false){
  58.             total+=numbers[i].value;
  59.         };
  60.     }
  61.  
  62.     return total;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment