求一VF编程作业

来源:百度知道 编辑:UC知道 时间:2024/05/17 10:52:03
题目
一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数,例如13就是一个绝对素数.试求所有两位绝对素数.

要求需要用子程序(按过程)编...

clear
sum=0
for i=10 to 99
do 绝对素数-1
endfor
?"求和结果是",sum

绝对素数-1 程序:
for j=2 to i-1
if i%j=0
exit
endif
endfor
if j>=i
a=int(i/10)
b=i%10
x=b*10+a
for y=2 to x-1
if x%y=0
exit
endif
endfor
if y>=x
?alltrim(str(i)),"是个素数",alltrim(str(x)),"也是素数"
sum=sum+i
endif
endif

告诉你一个技巧(也不算技巧吧) 如果你用一个程序就做饿出来的话 如果题要求用过程(但是你自己觉得一个程序好做) 就随便截取一段弄到另一个程序里就行了!
解释我还是用一个程序来解释吧:
clear
sum=0
for i=10 to 99
&&是从10开始判断 因为一位数不存在交换位置 而只到2位数(3位数以及以上的就没考虑)

for j=2 to i-1
if i%j=0
exit
endif
endfor

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&此部分是第一次判断是否为素数 也可以把 i%j=0 换成 int(i/j)=i/j 好好理解下
&& 如果还是不明白为什么可以这么判断的话 就背住吧
&& exit的作用是 如果判断不是素数的话就跳出此循环 这时 j的