注册 登录
编程论坛 PowerBuilder

[求助]PB新手的一个简单问题

网菜 发布于 2006-03-26 09:22, 943 次点击
怎么样用PowerScript编程判断一个数M是否为素数?
我用下面的程序为什么不可以啊?
int m
int i=2
int f=0
m=integer(sle_1.text)
int n=integer(m/2)
if m=0 or m=1 then
messagebox("验证素数",string(m)+"不是素数!")
else
for i=2 to n step 1
if m/i=integer(m/i) then
f=1
exit
else
f=0
end if
next
end if
if f=0 then
messagebox("验证素数",string(m)+"是素数!")
else
messagebox("验证素数",string(m)+"不是素数!")
end if

高手请指点一下。先谢过了!!
3 回复
#2
ヤ順祺冄繎ヤ2006-03-27 09:45
以下是引用网菜在2006-3-26 9:22:00的发言:
怎么样用PowerScript编程判断一个数M是否为素数?
我用下面的程序为什么不可以啊?
int m
int i=2
int f=0
m=integer(sle_1.text)
int n=integer(m/2)
if m=0 or m=1 then
messagebox("验证素数",string(m)+"不是素数!")
else
for i=2 to n step 1
if m/i=integer(m/i) then
f=1
exit
else
f=0
end if
next
end if
if f=0 then
messagebox("验证素数",string(m)+"是素数!")
else
messagebox("验证素数",string(m)+"不是素数!")
end if

高手请指点一下。先谢过了!!

算法好像有错!!!

#3
wsl0002006-03-27 13:28
你看一下C语言书上面有判断一个数是否为素数?的算法
#4
fairy13312006-04-17 15:34
我试了一下是可以的,若还不行请用以以语句测示:

int li_ss_source,n,li_div

int i=2

int li_bz_ss = 0

li_ss_source = integer(sle_1.text)



n = integer(li_ss_source/2)



if li_ss_source = 0 or li_ss_source = 1 then

messagebox("验证素数",string(li_ss_source)+"不是素数!")

else

for i = 2 to n

if li_ss_source / i = integer(li_ss_source / i) then

li_bz_ss = 1

li_div = li_ss_source / i

exit

end if

next

end if

if li_bz_ss = 0 then

messagebox("验证素数",string(li_ss_source)+"是素数!")

else

messagebox("验证素数",string(li_ss_source)+"不是素数!可被以数整除:" + string(li_div))

end if
1