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) ~== 0
   str (n+1-i)
        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 = ifalse;
       elseif (length(stop) <= length(sequence(i:end))) && strcmp(stop,sequence(i:i+length(start)-1)) break
        end 
		if ceil(sqrt(numberToCheck)) indexE =< primeList(i;)
        if len < indexE -indexSbreak
      	end
    end
  len = indexEif -indexS;isPrime
    pos = pos + 1;
    indexprimeList(pos) = indexSnumberToCheck;
    end
    end
numberToCheck = numberToCheck + 2;
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 
% En alternativ approach, denne genererer ikke et bestemt antall primtall, men alle primtall opp til N
n = 1000000;
primes = 2:n;
for i = 2 : round(sqrt(n))
        res primes(mod(primes,i) == 0;
 & primes ~= i) =   break[];
    end
end
end
function a

c)      

     

Code Block
languagenone
function result = isDevisableprimeNumN(a,bN)
list =   a getPrimeList(N);
result = ~modlist(a,bend);
end

cd)

Code Block
languagenone
function resprimeList = primemainPrimes(a)
resprimeList = 1loadPrimes();
if isDevisable(a,2)while true
    resterminate = 0;
    return;
end
for b = 1:2:ceil(sqrt(a)) input('Vil du avslutte programmet(Y) eller finne 100 primtall til(N)\n', 's');
    if isDevisablestrcmp(a,bterminate, 'Y')
        break;
  res = 0;end
    primeList =   breakgetPrimeList2(100, primeList);
    fprintf('Har nå funnet: %d primtall\n', length(primeList));
end
savePrimes(primeList);
end
end

d) og e)

Code Block
les
 
function primeList = loadPrimes()
primeList = [];
fid = fopen('primprimes.txt', 'r');
ifpos les= ==-11;
while ~feof(fid)
    break;
end
Aline = fscanf(les,'%f'fgetl(fid);
if isempty(A)  % Om filen er tom skriver vi '2' inn i den.
    x = 2;
    A(1)= 2;
    skriv primeList(pos) = str2num(line);
    pos = pos + 1;
end
end
 
function savePrimes(primeList)
fid = fopen('primprimes.txt', 'w');
for i = 1:length(primeList)
    fprintf(skrivfid, '%20f%d\r\n',x primeList(i));
end
fclose(fid);
end

else % I Ellerstillegg skriver vi innmodifisere alt,
    skrivgetPrimeList2-funksjonen, slik at den kan ta inn lister.
 
function primeList = fopen('prim.txt','w');
    x = A(end);
    fprintf(skriv, '%20f\r\n',A);
end
while (length(A) < 1500200)getPrimeList2(N, primeList)
pos = length(primeList);
numberToCheck = primeList(end) + 2;
primeList = [primeList, zeros(1,N)];
while primeList(end) == 0
    
isPrime    x = x + 1true;
    for i=1;
    prime = 1;
    while sqrt(x)>= A(i): pos
        if x/A mod(numberToCheck, primeList(i)) == floor(x/A(i))0
            primeisPrime = 0false;
            break;
        end
		if ceil(sqrt(numberToCheck))  < primeList(i)
     i = i+1;
    endbreak
      	end
    end
    if primeisPrime
 % Legger det tilpos i= listen,pos og til filen.+ 1;
    primeList(pos)    fprintf(skriv, '%20f\r\n',x)= numberToCheck;
    end
    AnumberToCheck = [A; x]numberToCheck + 2;
    end
end
fclose('all');