I wrote a code for the sieve of Eratosthenes, but the grader was not satisfied with my code. I'm not sure what I did wrong to his eyes. Any ideas? Please and thank you!
function p = prime_seive(n)
p = [0 2:n];
for k = 2:sqrt(n)
if p(k)
p(k^2:k:n) = 0;
end
end
p = p(p ~= 0);
end

5 个评论

Stephen23
Stephen23 2021-4-29
编辑:Stephen23 2021-4-29
Which refinement of the sieve are you supposed to implement?
I was given a pseudocode to work with, and in that code was a "for loop" where
k = 2:sqrt(n), and if pk was not zero, then we set p(j) equal to zero where j = k^2, k^2 +k, k^2 +2k...n
Stephen23
Stephen23 2021-4-29
编辑:Stephen23 2021-4-29
Did the grader give any hints or feedback? Which cases failed?
Have you checked the requirements for the vector orientation?
Thankfully, they didn't ask for any specific vector orientation. I can't post a picture of the instructions here due to copyright, but let me wite out the two theorems they wanted included:
1) if c is not divisible by any number less than c, then c is prime
2) If c is not divisible by any interger between 2 and sqrt(n), then c is prime
Maybe he was just being a stickler for the pervious parts.
maybe the wrong spelling of "sieve" in the function's name?

请先登录,再进行评论。

 采纳的回答

The code works fine and replies the correct values for:
[], 1, 2, 3, 10, 100, 200
Maybe inputs like NaN or vectors should be caught also? Is a column vector expected as output?

1 个评论

I actually just needed an array. this grader has given me issues before, though. Thank you for checking my code!

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Programming 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by