data primes;
length status $12.;
do i=1 to 4;
status='Prime';
do j=2 to i-1;
if mod(i, j) = 0 then do;
status='Composite';
leave; *exit loop;
end;
end;
output;
end;
run;
proc print data = primes;
run;
以上是我跑的程序,下面是输出。当数字为素数时,我无法理解i的值。我已经提到我应该直到n-1但在输出中i = n的值为素数。有人可以帮我理解这个吗?
Obs status i j
1 Prime 1 2
2 Prime 2 2
3 Prime 3 3
4 Composite 4 2
答案 0 :(得分:1)
如果i = 1,那么第二个循环是j = 2到0,这意味着循环永远不会开始。 j循环永远不会执行。您可以添加显式输出或put语句来查看此内容。