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));
primeList = getPrimeList2(100, primeList);
end
savePrimes(primeList);
end
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', 'aw');
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
|