nex036ara

eratosten

Dec 24th, 2012
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.19 KB | None | 0 0
  1. function [result_vector] = eratosten(max_number)
  2. stop_variable =  max_number;
  3.  
  4. if (max_number==1)
  5.     disp('1 is not allowed');
  6.    return;
  7. end
  8.  
  9. if(max_number<4)
  10.  
  11. for l=2:max_number
  12.     result_vector(l-1)=l;
  13.    
  14. end
  15.  
  16. return;
  17.  
  18. end
  19.  
  20. if(max_number==4)
  21. result_vector(1)=2;
  22. result_vector(2)=3;
  23. return;
  24. end
  25.  
  26.  
  27. for i=2:max_number
  28.         test_vector(i-1)=i;
  29. end
  30.  
  31. p=test_vector(1);
  32. j=1;
  33.     while(p^2 < stop_variable)
  34.        k=1;
  35.        result_vector(j)=p;
  36.        j=j+1;
  37.        
  38.        
  39.         for i=1:length(test_vector)
  40.          
  41.             if( mod( test_vector(i), p )~=0)
  42.             test_internal(k)=test_vector(i);
  43.             k=k+1;
  44.             end
  45.            
  46.         end
  47.        
  48.        
  49.         for i=1:k-1
  50.             test_vector(i)=test_internal(i);
  51.          
  52.         end
  53.           %%izbegavanje upisa iz originalnog test vektora
  54.            
  55.         for i=k:length(test_vector)
  56.             test_vector(i)=0;
  57.              
  58.         end
  59.        
  60.        
  61.          p = test_vector(1);
  62.        
  63.      
  64.     end
  65.    
  66.    
  67.      for i=1:k-1
  68.        
  69.          result_vector(j)=test_vector(i);
  70.          j=j+1;
  71.        end
  72.    
  73.          
  74.    
  75. end
Advertisement
Add Comment
Please, Sign In to add comment