【发布时间】:2017-04-09 00:48:00
【问题描述】:
我的任务是创建一段 matlab 代码,该代码使用 Eratosthenes 的筛子查找最多为 N 的素数列表。我创建了一个循环来查找非素数,然后在其中找到它们的索引值2 到 N 的列表。如何让我的程序逐个元素地获取这些索引值并将我的零矩阵中的相应位置设置为 1?
对于我的任务,我也不能使用内置的 isprime 函数。
到目前为止我的代码:
function [p,c] = sieve(N)
N = input('Please type an integer greater than 1: ');
a = ones(1,N); %Non-primes are set to 0
for k = 2:N
k:k:end 是如何工作的,我猜它会添加 k 直到达到 N。 谢谢
【问题讨论】:
-
你能举个例子,可能是通过形成一个较小的数组左右?
-
提出一个新问题。在旧问题之上添加新问题是一种不好的做法。
标签: arrays matlab matrix primes sieve-of-eratosthenes