回 帖 发 新 帖 刷新版面

主题:[投票]50分悬赏

【问题描述】输入M和N的值,输出M到N之间所有的绝对素数。所谓绝对素数是指一个素数,当它的倒数仍为素数,这样的素数称为绝对素数。如157本身是素数,它的倒数751也是素数,所以157就是绝对素数。
【输入文件】
文件名:JUESU.IN
文件中有两个数M和N,10≤M<N≤32767。
【输出文件】
文件名:JUESU.OUT
文件中全部为M到N之间的绝对素数。
【输入样例】
90 120
【输出样例】
97 101 107 113
[em4][em5][em6][em7][em8][em9][em10][em1][em2][em3][em4][em9][em10][em11][em12][em13][em14][em15][em16][em17][em18][em19][em20][em16][em17][em19][em20][em13][em10][em9]

回复列表 (共19个回复)

沙发

简单要命
CLS
INPUT N,M
FOR I=N TO M
  P=I
  F=0
  GOSUB 100
  IF F=0 THEN 
    S$="'    
    DO 
      K=P MOD 10
      S$=S$+LTRIM$(STR$(K))
      P=P\10
    LOOP UNTIL P=0
    P=VAL(S$)
    F=0
    GOSUB 100
    IF F=0 AND I>10 THEN PRINT I;
  END IF
NEXT I
END 
100
FOR J=2 TO SQR(P)
  IF P MOD J=0 THEN F=1:RETURN
NEXT J      
RETURN

板凳


我知道咋做,我是要不是用字符串来编得程序!!!!Are you Ok??

3 楼

不早讲!!!

4 楼

不过很简单
只要在反序是去掉字符串改为
DO 
  K=P MOD 10
  S=S*10+K
  P=P\10 
LOOP UNTIL P=0
P=S
就OK了!

5 楼

太简单了,用字符串做法(我个人喜欢用字符串,并不是只能用字符串做):
INPUT "M, N = ", m, n
FOR i = m TO n
  flag1 = 0: flag2 = 0: a$ = LTRIM$(RTRIM$(STR$(i))): b$ = ""
  FOR j = LEN(a$) TO 1 STEP -1
    b$ = b$ + MID$(a$, j, 1)
  NEXT j
  FOR j = 2 TO INT(SQR(i))
    IF i MOD j = 0 THEN flag1 = 1: EXIT FOR
  NEXT j
  FOR j = 2 TO INT(SQR(VAL(b$)))
    IF VAL(b$) MOD j = 0 THEN flag2 = 1: EXIT FOR
  NEXT j
  IF flag1 = 0 AND flag2 = 0 THEN PRINT i,
NEXT i: PRINT

6 楼

CLS
INPUT N,M
FOR I=N TO M
  P=I
  F=0
  GOSUB 100
  IF F=0 THEN 
    S$="'    
    DO 
      K=P MOD 10
      S$=S$+LTRIM$(STR$(K))
      P=P\10
    LOOP UNTIL P=0
    P=VAL(S$)
    F=0
    GOSUB 100
    IF F=0 AND I>10 THEN PRINT I;
  END IF
NEXT I
END 
100
FOR J=2 TO SQR(P)
  IF P MOD J=0 THEN F=1:RETURN
NEXT J      
RETURN

7 楼

楼上!!!!
你为何抄我的!!!!
严禁抄袭!!!!!

8 楼

“梦幻小樱”简直就是抄王!!!!!!
[url=http://bbs.pfan.cn/post-305793.html]http://bbs.pfan.cn/post-305793.html[/url]
在这里他也抄我的!!!!1

9 楼

抄袭有啥好的?!

10 楼

CLS
INPUT M, N
DIM Z(5)
FOR A = M TO N: I = A
FOR J = 2 TO SQR(I)
IF I MOD J = 0 THEN 10
NEXT J: K = 0
WHILE I <> 0
K = K + 1
Z(K) = I MOD 10
I = I \ 10
WEND
FOR L = 1 TO K: I = I * 10 + Z(L): NEXT L
FOR J = 2 TO SQR(I)
IF I MOD J = 0 THEN 10
NEXT J
PRINT A;
10 NEXT A
END

我来回复

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