求600到900之间素数的个数clearn=0for x=600 to 900z=.t.for i=2 to sqrt(x)if x%i=0(这个地方什么意思?为什么X除以I等于0?)z=.f.exitendifnextif z=.t.n=n+1endifnextreturn整个程序的原理是什么?我不懂!

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 09:34:52
求600到900之间素数的个数clearn=0for x=600 to 900z=.t.for i=2 to sqrt(x)if x%i=0(这个地方什么意思?为什么X除以I等于0?)z=.f.exitendifnextif z=.t.n=n+1endifnextreturn整个程序的原理是什么?我不懂!

求600到900之间素数的个数clearn=0for x=600 to 900z=.t.for i=2 to sqrt(x)if x%i=0(这个地方什么意思?为什么X除以I等于0?)z=.f.exitendifnextif z=.t.n=n+1endifnextreturn整个程序的原理是什么?我不懂!
求600到900之间素数的个数
clear
n=0
for x=600 to 900
z=.t.
for i=2 to sqrt(x)
if x%i=0(这个地方什么意思?为什么X除以I等于0?)
z=.f.
exit
endif
next
if z=.t.
n=n+1
endif
next
return
整个程序的原理是什么?我不懂!

求600到900之间素数的个数clearn=0for x=600 to 900z=.t.for i=2 to sqrt(x)if x%i=0(这个地方什么意思?为什么X除以I等于0?)z=.f.exitendifnextif z=.t.n=n+1endifnextreturn整个程序的原理是什么?我不懂!
有2个for循环
外面的for循环是从600-900逐个检查各个数字
里面的for循环是检查对外面的for指定的数字是不是素数, 是,就记录, 否,就检查下一个数字
for i=2 to sqrt(x) &&如果该数不能被从2到平方根都不能被整除,那么就是素数,无需从1到x之间每个都检查
if x%i=0 &&取余函数, 如果结果为0,表示可以整除,那么x就不是素数.
z=.f.
exit
endif
next