请高手帮我编程(会用Visual FoxPro的)
1.求100-1000内最大的素数(结果:997)2.除1和它本身外,不能被其他整数整除的正整数称为素数(注:1不是素数,2是素数)。若两素数之差为2,则称两素数为双胞胎...
1.求100-1000内最大的素数 (结果 :997)
2.除1和它本身外,不能被其他整数整除的正整数称为素数(注:1不是素数,2是素数)。若两素数之差为2,则称两素数为双胞胎数,问[31,601]之间有多少对双胞胎数 展开
2.除1和它本身外,不能被其他整数整除的正整数称为素数(注:1不是素数,2是素数)。若两素数之差为2,则称两素数为双胞胎数,问[31,601]之间有多少对双胞胎数 展开
1个回答
展开全部
1.
CLEAR
SET TALK OFF
MAX=0
FOR X=100 TO 1000
Y=INT(SQRT(X))
FOR I=2 TO Y
IF MOD(X,I)=0
EXIT
ENDIF
ENDFOR
IF I>Y
IF X>MAX
MAX=X
ENDIF
ENDIF
ENDFOR
?"100-1000中最大的素数是:",MAX
SET TALK ON
2.有点难度,我加了注释,如果能看懂最好
clear
s=0 &&s是计数器,用于计素数的个数
s1=0 &&s1是计数器,用于计双胞胎数
dime a(200) &&定义一个数组,用来存素数,200是估计值
for x=31 to 601
Y=INT(SQRT(X))
FOR I=2 TO Y
IF MOD(X,I)=0
EXIT &&不是素数,则跳出
ENDIF
ENDFOR
if i>y
s=s+1 &&素数个数+1
a(s)=x &&将求得的素数依次放入数组中
endif
endf
for i=1 to s-1
if a(i+1)-a(i)=2
?a(i+1),a(i) && 如相邻的素数相差2,则显示它们
s1=s1+1 &&双胞胎数+1
endif
endfor
?"31-601之间的双胞胎数共"+str(s1,3)+"对"
CLEAR
SET TALK OFF
MAX=0
FOR X=100 TO 1000
Y=INT(SQRT(X))
FOR I=2 TO Y
IF MOD(X,I)=0
EXIT
ENDIF
ENDFOR
IF I>Y
IF X>MAX
MAX=X
ENDIF
ENDIF
ENDFOR
?"100-1000中最大的素数是:",MAX
SET TALK ON
2.有点难度,我加了注释,如果能看懂最好
clear
s=0 &&s是计数器,用于计素数的个数
s1=0 &&s1是计数器,用于计双胞胎数
dime a(200) &&定义一个数组,用来存素数,200是估计值
for x=31 to 601
Y=INT(SQRT(X))
FOR I=2 TO Y
IF MOD(X,I)=0
EXIT &&不是素数,则跳出
ENDIF
ENDFOR
if i>y
s=s+1 &&素数个数+1
a(s)=x &&将求得的素数依次放入数组中
endif
endf
for i=1 to s-1
if a(i+1)-a(i)=2
?a(i+1),a(i) && 如相邻的素数相差2,则显示它们
s1=s1+1 &&双胞胎数+1
endif
endfor
?"31-601之间的双胞胎数共"+str(s1,3)+"对"
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询