Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

DEL 1

a)

Code Block
languagenone
function resresult = isPalindrome ( str )
n = size (str , 2);
resisPrime(N)
result = true;
if N == 1
    result = false;
elseif N <= 3 && N~=1
    result = true ;
else
    for ia =1: n
 2:(N-1) 
        if str (imod(N, a) ~== str (n+1-i)
0
            resresult = false;
            return;
        breakend
    end
end
end

b)

Code Block
languagenone
function resprimeList = sequenceFinder (sequence,start,stop )
len = 0;
index = 0;
getPrimeList(N)
primeList = zeros(1, N); % preallokerer
primeList(1) = 2;
pos = 1;
numberToCheck = 3;
while primeList(end) == 0
    isPrime = true;
    for i = 1:length(sequence)-length(stop) : pos
    if (length(start) <= length(sequence(i:end))) && strcmp(start,sequence(i:i+length(start)-1))
 if mod(numberToCheck, primeList(i)) == 0
         indexS   isPrime = i;false;
            break
    elseif (length(stop) <= length(sequence(i:end))) && strcmp(stop,sequence(i:i+length(start)-1))
    end 
		if ceil(sqrt(numberToCheck))  < primeList(i)
           indexE = i;break
      	end
    end
    if len < indexE -indexS
     isPrime
    pos = pos + 1;
    primeList(pos) = numberToCheck;
    end
    lennumberToCheck = numberToCheck indexE+ -indexS2;
end
end
 
% En alternativ approach, denne genererer ikke et bestemt antall primtall, men alle primtall opp til indexN
n = indexS1000000;
primes = 2:n;
for i = 2   end: round(sqrt(n))
    end  
end
res = sequence(index:index+len+length(stop)-1);
end

Eventuelt kan den lages litt enklere ved hjelp av matlabs strfind() funksjon.

DEL 2

a)

Code Block
function a = isDevisable(a,b)
    a = ~mod(a,b);
end

b)

Code Block
function res = prime(a)
res = 1;
for b = 2:a-1
    if isDevisable(a,b)
        res = 0;
        break;
    end
end
end
function a = isDevisable(a,b)
    a = ~mod(a,b);
end

c)

primes(mod(primes,i) == 0 & primes ~= i) = [];
end


c)      

     

Code Block
languagenone
function result = primeNumN(N)
list = getPrimeList(N);
result = list(end);
end

d)

Code Block
languagenone
function primeList = mainPrimes()
primeList = loadPrimes();
while true
    terminate = input('Vil du avslutte programmet(Y) eller finne 100 primtall til(N)\n', 's');
    if strcmp(terminate, 'Y')
        break;
    end
    primeList = getPrimeList2(100, primeList);
    fprintf('Har nå funnet: %d primtall\n', length(primeList));
end
savePrimes(primeList);
end

 
function primeList = loadPrimes()
primeList = [];
fid = fopen('primes.txt', 'r');
pos = 1;
while ~feof(fid)
    line = fgetl(fid);
    primeList(pos) = str2num(line);
    pos = pos + 1;
end
end
 
function savePrimes(primeList)
fid = fopen('primes.txt', 'w');
for i = 1:length(primeList)
    fprintf(fid, '%d\n', primeList(i));
end
fclose(fid);
end

% I tillegg må vi modifisere getPrimeList2-funksjonen, slik at den kan ta inn lister.
 
function primeList = getPrimeList2(N, primeList)
pos = length(primeList);
numberToCheck = primeList(end) + 2;
primeList = [primeList, zeros(1,N)];
while primeList(end) == 0
    isPrime = true;
    for i = 1 : pos
        if mod(numberToCheck, primeList(i)) == 0
            isPrime = false;
            break
        end
		if ceil(sqrt(numberToCheck))  < primeList(i)
           break
      	end
    end
    if isPrime
    pos = pos + 1;
    primeList(pos) = numberToCheck;
    end
    numberToCheck = numberToCheck + 2;
end
end
Code Block
function res = prime(a)
res = 1;
if isDevisable(a,2)
    res = 0;
    return;
end
for b = 1:2:ceil(sqrt(a)) 
    if isDevisable(a,b)
        res = 0;
        break;
    end
end
end