回 帖 发 新 帖 刷新版面

主题:十万火急

【问题描述】
我们将左右对称的自然数称为回文数,例如:121,4114等;
将只能被1与其本身整除的自然数称之为素数,例如:7,353等。
键入N,M,求出N至M(含N与M)之间既是回文数又是素数的自然数共有多少个?

【问题分析】
本题可以分两步来做:1、求出N至M中的回文数;2、对于每一个求出的回文数,判断其是否为素数。 
 
【程序清单】
INPUT "N,M=";N,M
DIM A(100)
S=0
FOR I=N TO M
    Q=0
J=0
T=I

 DO    
  J=J+1
    (   ①   )   
T=INT(T/10)
LOOP UNTIL T=0

FOR K=1 TO INT(J/2)            
 IF (    ②   )          THEN Q=1
NEXT K

 IF  (    ③      ) THEN
  FOR K=2 TO SQR(I)
   IF I MOD K=0 THEN  (     ④      ) 
  NEXT K
END IF

IF I=1 THEN Q=1
IF Q=0 THEN S=S+1

NEXT I

PRINT S

END

回复列表 (共8个回复)

沙发


INPUT "N,M=";N,M
DIM A(100)
S=0
FOR I=N TO M
    Q=0
J=0
T=I

 DO    
  J=J+1
    (  t=t mod 10   )   
T=INT(T/10)
LOOP UNTIL T=0

FOR K=1 TO INT(J/2)            
 IF (  mid$(str$(i),k,1)=mid$(str$(i),j/2+1-k,1)     )          THEN Q=1
NEXT K

 IF  (   q=1      ) THEN
  FOR K=2 TO SQR(I)
   IF I MOD K=0 THEN  (   q=0      ) 
  NEXT K
END IF

IF I=1 THEN Q=1
IF Q=0 THEN S=S+1

NEXT I

PRINT S

END[em2]

板凳

cls
input m,n
for i=m to n
x=i
for j=2 to sqr(x)
if x mod j=0 then 1
next j
do
p=p+1:a(p)=x mod 10:x=x\10
loop untol x=0
for j=2 to p
if a(j)<>a(p+1-j) then 1
next j
y=y+1
1 next i
? y
end

3 楼

CLS
INPUT N,M
FOR I=N TO M:F=-1
FOR J=2 TO SQR(I)
IF I MOD J=0 THEN F=0:EXIT FOR
NEXT J
IF F<>-1 THEN 10
A$=LTRIM$(STR$(I))
FOR K=1 TO LEN(A$)
A(K)=VAL(MID$(A$,K,1))
NEXT K
FOR K=1 TO I
IF A(I)<>A(LEN(A$)+1-K) THEN 10
NEXT K
PRINT I,
10 NEXT I
END

4 楼

【111】6174是一个有趣的数,它叫做卡普雷卡尔常数。任意写一个数字不全一样的四位数,先把这个四位数的各位数字按从大到小的顺序组成一个新的四位数,然后减去这些数字由小到大组成的四位数得到差,再按上面的方法处理,经有限次运算,最后的结果总是6174,试编程验证。

5 楼

CLS
INPUT n$
FOR i = 1 TO LEN(n$)
  a = ASC(MID$(n$, i, 1))
  IF a > 64 AND a < 91 THEN
      IF i MOD 2 <> 0 THEN a = a + 2 ELSE a = a - 2
      IF a > 90 THEN a = a - 26
    END IF
  
    IF a > 96 AND a < 123 THEN
      IF i MOD 2 <> 0 THEN a = a + 2 ELSE a = a - 2
      IF a > 122 THEN a = a - 26
    END IF
  
  PRINT CHR$(a);
NEXT i
END

6 楼

爱QBasic我爱QBasic我爱QBasic
我爱QBasic我爱QBasic我爱QBasic我爱QBasic
我爱QBasic我爱QBasic我爱QBasic我爱QBasic
我爱QBasic我爱QBasic我爱QBasic我爱QBasic
我爱QBasic我爱QBasic我爱

7 楼

cls
input n
print n
end

8 楼

INPUT "N,M=";N,M
DIM A(100)
S=0
FOR I=N TO M
    Q=0
J=0
T=I

 DO    
  J=J+1
    (  t=t mod 10   )   
T=INT(T/10)
LOOP UNTIL T=0

FOR K=1 TO INT(J/2)            
 IF (  mid$(str$(i),k,1)=mid$(str$(i),j/2+1-k,1)     )          THEN Q=1
NEXT K

 IF  (   q=1      ) THEN
  FOR K=2 TO SQR(I)
   IF I MOD K=0 THEN  (   q=0      ) 
  NEXT K
END IF

IF I=1 THEN Q=1
IF Q=0 THEN S=S+1

NEXT I

PRINT S

END

我来回复

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