SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 952|回复: 4
打印 上一主题 下一主题

新手,素数的程序!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2005-9-29 06:08:40 | 只看该作者

新手,素数的程序!

刚开始学习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;
谢谢!!!!!!!!!!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2005-9-29 09:04:20 | 只看该作者

Re: 新手,素数的程序!

data;
z=mod(4,3);
put z=;
run;

从4开始就一直死循环,呵呵呵呵呵
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2005-9-29 09:22:01 | 只看该作者

恩有道理!

是哦! <!-- 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 -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2005-9-29 09:39:20 | 只看该作者

另外我想的一种

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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2005-9-29 09:55:13 | 只看该作者

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:
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-9 07:16 , Processed in 0.168448 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表