主题:求100以内绝对素数的程序
wdzrdr
[专家分:0] 发布于 2006-10-16 13:53:00
对于一个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个回复)
沙发
maxumi [专家分:2200] 发布于 2006-10-16 15:03:00
x = (x mod 10) *10 + x \ 10
交换x的两位数字
板凳
moz [专家分:37620] 发布于 2006-10-16 17:32:00
用函数判断某数是否质数
3 楼
野生大白菜 [专家分:120] 发布于 2006-10-16 22:10:00
编的一般,你拿去试试看:
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 楼
wdzrdr [专家分:0] 发布于 2006-10-17 12:21:00
多谢各位援手!
5 楼
moz [专家分:37620] 发布于 2006-10-17 15:59:00
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 楼
野生大白菜 [专家分:120] 发布于 2006-10-17 21:17:00
这个编的好,简单明了!不愧是moz!
7 楼
wdzrdr [专家分:0] 发布于 2006-10-18 14:34:00
MOZ果然高手!
8 楼
hxy_anhui [专家分:320] 发布于 2009-01-30 13:46:00
这不简单!
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
我来回复