SAS中文论坛

标题: 新手,素数的程序! [打印本页]

作者: shiyiming    时间: 2005-9-29 06:08
标题: 新手,素数的程序!
刚开始学习sas,找出<10000的素数,我的程序怎么成了死循环?
data;
i=3;
x=3;
do until (x>10000);
  do while (mod(x,i)^=0);
         i=i+2;
      end;
if i>=x then put x;
x=x+1;
end;
run;
谢谢!!!!!!!!!!!
作者: shiyiming    时间: 2005-9-29 09:04
标题: Re: 新手,素数的程序!
data;
z=mod(4,3);
put z=;
run;

从4开始就一直死循环,呵呵呵呵呵
作者: shiyiming    时间: 2005-9-29 09:22
标题: 恩有道理!
是哦! <!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: --> 晕了,怎么改好啊!谢谢! <!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Razz" /><!-- s:P -->
作者: shiyiming    时间: 2005-9-29 09:39
标题: 另外我想的一种
data a;
do x=3 to 1000;
do i=3 to x by 2 until(mod(x,i)=0);
if i=x then output;
end;
end;
run;
proc print data=a;
var x;
run;
作者: shiyiming    时间: 2005-9-29 09:55
标题: output和put有什么区别?
data a;
do x=3 to 1000;
do i=x-1 by -1 until(mod(x,i)=0);
if i=1 then output;
end;
end;
run;
proc print data=a;
run;
结果很好,可是output 换成put x i; 结果就是
Obs      x       i
   1     1001    500
在log里面结果是和output没什么区别.但Output里面结果就不同了,这是怎么回事请那 :oops:




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2