回 帖 发 新 帖 刷新版面

主题:一个小学生的编程题,请教武林高手

[em2]用QB编写超级素数的程序,一个素数依次从最低位去掉一位,两位,三位等,所得的数仍是素数.试编程找出M,N之间得超级素数.(10<N<M<9999)

回复列表 (共7个回复)

沙发

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

板凳


[em2]太感谢了,P应该是标志变量吧.

3 楼


[em2]请问内循环可以用DO LOOP UNTIL来做吗?

4 楼

可以,
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 楼

    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 楼

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 楼

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

我来回复

您尚未登录,请登录后再回复。点此登录或注册