%macro zhishu(low,high);
data c;
do i=&low to &high;
k=0;
do j=1 to i;
if mod(i,j)=0 then k+1;
if k>3 then leave;
end;
if k=2 then output;
end;
keep i;
run;
proc print data=c;
run;
%mend;
%zhishu(10,500)
%macro zhishu2(low,high);
%do i=&low %to &high;
%let k=0;
%do j=1 %to &i;
%if %SYSFUNC(mod(&i,&j))=0 %then %let k=%eval(&k+1);
%if &k>3 %then %goto enddo;
%end;
%enddo:;
%if &k=2 %then %put &i;
%end;
%mend;
%zhishu2(100,200)