%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Aufgabe 1:
%   Schreiben Sie ein Matlab-Skript, das alle Zahlen n zwischen 1 und 
%   4500 ausgibt,
%    (1) die durch 5 geteilt den Rest 2 haben,
%    (2) sodass |1-2-...-n| durch 4 teilbar ist,
%    (3) und wo log(2)+log(7)+...+log(n) zwischen 20 und 40 liegt.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all; % lösche alle Variablen
w=200;     % w=200 statt 4500, für test
n=1:w;     % alle Zahlen n zwischen 1 und w

%(1)
n(mod(n,5)~=2)=[]; % Zahlen 1..w die durch 5 geteilt den Rest 2 haben,
disp(['(1) Lösung n=' mat2str(n)]);

%(2)
m=cumsum(n);        % m:=1+2+...+n, für alle n
m=abs(2-m);         % |1-2-...-n|=|2-m|
n(mod(m,4)~=0)=[];  % suchen, wo beträge von m durch 5 teilbar
disp(['(2) Lösung n=' mat2str(n)]);

%(3)
m=[];
for ni=n
   k=sum(log(2:5:ni)); % k:=log(2)+log(7)+...+log(ni)
   if(k>20 && k<40)    % k zwischen 20 und 40
       m=[m ni];
   end
end
n=m;
disp(['(3) Lösung n=' mat2str(n)]);