全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
823 1
2013-11-02
初学SAS,觉得宏这部分看上去很容易理解,但是写起来总是有错……要把这个求10000内素数的数据步改成一个能求出N以下素数的宏:
data;
  x=2;
  put x;
  do x = 3 to 10000 by 2;
    i=3;
    do while (mod(x,i)^=0);
      i=i+2;
    end;
    if i>=x then put x;
end;
run;
我是这样写的:
%MACRO M(N);
data;
  x=2;
  put x;
  do x = 3 to &N;
    i=3;
    do while (mod(x,i)^=0);
      i=i+2;
    end;
    if i>=x then put x ;
  end;
run;
%MEND M;
%M(10);
运行时尝试令N=10,结果输出2和3后就卡住了。

求指导!谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-11-2 21:31:55
%MACRO M(N);
data;
  x=2;
  put x;
  do x = 3 to &N;
   do i=2 to x-1;
    if mod(x,i)=0 and i^=x-1 then leave;
        if i=x-1 then output;
   end;
  end;
run;
proc print;
run;
%mend M;
%M(100);



   
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群