主题:编程
wangjieni11
[专家分:0] 发布于 2007-11-09 09:35:00
随机产生50个10-90之间的整数,选出其中的素数(用筛选法或其他方法),并按由小到大的顺序输出(用插入法或比较法,选其中一个)
回复列表 (共7个回复)
沙发
蓝色的水晶 [专家分:90] 发布于 2007-11-14 16:01:00
随机产生50个10-90之间的整数,选出其中的素数(用筛选法或其他方法),并按由小到大的顺序输出(用插入法或比较法,选其中一个)
dim a(50),b(50)
for i=1 to 50
a(i)=int(rnd*(81)+10)
print a(i);
next i
print
for i=1 to 50
flag=1
for j=2 to a(i)-1
if a(i) mod j=0 then flag=0
next j
if flag=1 then
print a(i);
k=k+1
b(k)=b(k)+1
end if
next i
print
for i=1 to k-1
for j=1 to k-i
if a(j)>a(j+1) then a(j),a(j+1)
next j
next i
for i=1 to k
print a(i);
next i
end
板凳
lu1012 [专家分:20] 发布于 2007-12-01 16:26:00
[size=2]不难啊!
CLS
DIM A(50),B(50)
T=0
FOR I = 1 TO 50
A(I)=INT(RND*81)+10
NEXT I
FOR I = 1 TO 50
F=0
FOR J = 2 TO A(I)-1
IF A(I) MOD J = 0 THEN F=1
NEXT J
IF F=0 THEN T=T+1:B(T)=A(I)
NEXT I
FOR I = 1 TO T-1
FOR J = I TO T
IF B(I)>B(J) THEN SWAT B(I),B(J)
NEXT J
NEXT I
FOR I = 1 TO T
PRINT B(I),
NEXT I
END[/size][/size][/size][/size][/size]
3 楼
lu1012 [专家分:20] 发布于 2007-12-01 16:28:00
没有必要像2楼那样做吧?!
4 楼
网虫一号 [专家分:1230] 发布于 2007-12-06 17:01:00
CLS
'找出50个10-90之间的所有素数
FOR I=1 TO 50
X=INT(RND*81+10)
FOR J=2 TO SQR(X)
IF X MOD J=0 THEN 10
NEXT J:A=A+1:A(A)=X
10 NEXT I
'选择排序,从小到大输出
FOR I=1 TO A-1:FOR J=I+1 TO N
IF A(I)>A(J) THEN SWAP A(I),A(J)
NEXT J,I
'输出
FOR I=1 TO A:PRINT A(I);:NEXT I
END
5 楼
小精灵1号 [专家分:1040] 发布于 2007-12-06 17:29:00
CLS
FOR I=1 TO 50
A=INT(RND*81)+10
FOR J=2 TO SQR(A)
IF A MOD J=0 THEN 1
NEXT J:S=S+1:A(S)=A
1 NEXT I
FOR I=1 TO S-1
FOR J=I+1 TO S
IF A(I)>A(J) THEN SWAP A(I),A(J)
NEXT J,I
FOR I=1 TO S:PRINT A(I);:NEXT I
END
6 楼
QB小猪 [专家分:1200] 发布于 2007-12-06 17:40:00
cls
for i=1 to 50
a=int(rnd*81+10)
for j=2 to sqr(a)
if a mod j=0 then 10
next j:k=k+1:a(k)=a
10 next i
for i=1 to k-1
for j=i+1 to k
if a(i)>a(j) then swap a(i),a(j)
next j:?a(i);
next i:?a(i)
end
不必判断1,因为产生的是10至90.
7 楼
jjwgydzh [专家分:0] 发布于 2007-12-08 18:49:00
CLS
DIM A(50),B(50)
T=0
FOR I = 1 TO 50
A(I)=INT(RND*81)+10
NEXT I
FOR I = 1 TO 50
F=0
FOR J = 2 TO A(I)-1
IF A(I) MOD J = 0 THEN F=1
NEXT J
IF F=0 THEN T=T+1:B(T)=A(I)
NEXT I
FOR I = 1 TO T-1
FOR J = I TO T
IF B(I)>B(J) THEN SWAT B(I),B(J)
NEXT J
NEXT I
FOR I = 1 TO T
PRINT B(I),
NEXT I
END
我来回复