回 帖 发 新 帖 刷新版面

主题:求100以内绝对素数的程序

对于一个100以内的素数(也称质数),把它的十位数字与个位数字对换之后,若得到的新整数仍为素数,则称原来的那个素数为“绝对素数”。例如11、13对换后为11、31仍是素数,它们就是绝对素数。要求编程求出100以内所有“绝对素数”。

  求素数的程序简单,如下:
  
  求一百以内的质数

CLS  清屏
FOR n = 2 TO 100    {定义变量N的循环从2到100}
k = 1         {给变量K赋值1}
FOR i = 2 TO SQR(n) {定义变量I从2到变量N的开平方进行循环}
IF n MOD i = 0 THEN k = 0 {条件语句,如果变量N能够整除变量I,那么变量K等于0}
NEXT i {下一循环}
IF k = 1 THEN PRINT n; {条件语句,如果变量K等于1,那么输出变量N}
NEXT n  
END

  可不知如何再将求出的素数对换后判断是否仍为素数

回复列表 (共8个回复)

沙发

x = (x mod 10) *10 + x \ 10
交换x的两位数字

板凳

用函数判断某数是否质数

3 楼

编的一般,你拿去试试看:
CLS
FOR n = 2 TO 100
k = 1: m = n
GOSUB A:
IF k = 1 AND n < 10 THEN
   n = n: GOSUB A:
END IF
IF k = 1 AND n >= 10 THEN
n = (n MOD 10) * 10 + n \ 10: GOSUB A:
n = m
END IF
IF k = 1 THEN PRINT n;
NEXT n
END
A: FOR i = 2 TO SQR(n)
IF n MOD i = 0 THEN k = 0
NEXT i
RETURN

4 楼

多谢各位援手!

5 楼

for i = 1 to 9
  for j = i to 9
     if zs(i*10+j) and zs(i+j*10) then print i;j,j;i
next j,i

function zs(a)
for b = 2 to sqr(a)
    if a mod b = 0 then exit function
next
zs=-1
end function

6 楼

这个编的好,简单明了!不愧是moz!

7 楼

MOZ果然高手!

8 楼

这不简单!
CLS
FOR I = 10 TO 99
  A = 0
  FOR J = 1 TO I
    IF I MOD J = 0 THEN A = A + 1
  NEXT J
  N = (I MOD 10) * 10 + I \ 10
  B = 0
  FOR J = 1 TO N
    IF N MOD J = 0 THEN B = B + 1
  NEXT J
  IF A = 2 AND B = 2 THEN PRINT I;
NEXT I
END

我来回复

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