主题:一个小学生的编程题,请教武林高手
流云紫杉
[专家分:0] 发布于 2007-02-18 16:05:00
[em2]用QB编写超级素数的程序,一个素数依次从最低位去掉一位,两位,三位等,所得的数仍是素数.试编程找出M,N之间得超级素数.(10<N<M<9999)
回复列表 (共7个回复)
沙发
hantaowang [专家分:30] 发布于 2007-02-18 16:49:00
dim a(4)
for i=10 to 9999
s=i:k=0
10 t=s
p=0
for j=2 to t-1
if t mod j=0 then p=1
next j
if p=0 and s<>0 then s=s\10:goto 10 else if p=1 then k=1
if k=0 then ? i;
next i
end
板凳
流云紫杉 [专家分:0] 发布于 2007-02-19 09:54:00
[em2]太感谢了,P应该是标志变量吧.
3 楼
流云紫杉 [专家分:0] 发布于 2007-02-19 09:56:00
[em2]请问内循环可以用DO LOOP UNTIL来做吗?
4 楼
JRX [专家分:180] 发布于 2007-03-11 19:35:00
可以,
FOR I= 10 TO 9999
S=I
DO
T=S:P=0
FOR J=2 TO T-1
IF T MOD J=0 THEN P=1:EXIT FOR
NEXT J
S=S\10
LOOP UNTIL P=0 OR S=0
IF P=1 THEN PRINT I
NEXT I
END
随便问一句,紫杉是几年级的?
5 楼
kenpung [专家分:0] 发布于 2007-03-13 14:52:00
s = 0
For n = 10 To 9999
flag = 0
s = n
Do Until s = 0
For t = 2 To s - 1
If s Mod t = 0 Then
flag = 1
Exit Do
End If
Next t
If flag = 0 Then
s = Int(s / 10)
End If
Loop
If flag = 0 Then Print n;
Next n
6 楼
幽灵密码 [专家分:3510] 发布于 2010-11-28 21:43:00
CLS
INPUT n, m
IF n > m THEN SWAP n, m
FOR i = n TO m
FOR j = 3 TO 1 STEP -1
z = VAL(LEFT$(LTRIM$(STR$(i)), j))
IF z = 1 THEN 1
FOR k = 2 TO INT(SQR(z))
IF z MOD k = 0 THEN 1
NEXT k
NEXT j
PRINT i;
1 NEXT i
END
7 楼
huangyb731 [专家分:630] 发布于 2010-11-29 21:57:00
dim a(4)
for i=10 to 9999
s=i:k=0
10 t=s
p=0
for j=2 to t-1
if t mod j=0 then p=1
next j
if p=0 and s<>0 then s=s\10:goto 10 else if p=1 then k=1
if k=0 then ? i;
next i
end
我来回复