vb判断一个数是否为质数,求代码。
答案:3 悬赏:0
解决时间 2021-01-06 16:28
- 提问者网友:凉末
- 2021-01-06 10:29
vb判断一个数是否为质数,求代码。
最佳答案
- 二级知识专家网友:洒脱疯子
- 2021-01-06 11:05
基本原理是将这个数n用从2到sqr(n)去除,如果有能够整除说明不是质数。当然你也可以用2到n-1去除,不过效率低一倍。
function 质数(byval n as long) as boolean
dim i as long
for i=2 to sqr(n)
if n mod i =0 then
质数=false
exit function
end if
next
质数=true
end function追问为什么要用n的二次算数根去除呢?追答因为一个数N如果能被另一个数整除(i1),即N/i1=i2,也就是N=i1*i2,那么i1和i2中总有一个小于等于sqr(N)。类似如果两数相加等于和,那么这两个数总有一个小于等于和的1/2一样。
function 质数(byval n as long) as boolean
dim i as long
for i=2 to sqr(n)
if n mod i =0 then
质数=false
exit function
end if
next
质数=true
end function追问为什么要用n的二次算数根去除呢?追答因为一个数N如果能被另一个数整除(i1),即N/i1=i2,也就是N=i1*i2,那么i1和i2中总有一个小于等于sqr(N)。类似如果两数相加等于和,那么这两个数总有一个小于等于和的1/2一样。
全部回答
- 1楼网友:摆渡翁
- 2021-01-06 13:24
我暂时保留我的看法!
- 2楼网友:胯下狙击手
- 2021-01-06 12:41
VB语法很久没写了,不过我可以提供给你思路。
首先用一个变量num来接收这个数。
再声明一个bool变量b=false.
然后用一个for循环,起始值为2结束值小于num
在循环里判断
for(int i=0;i if(num%i==0 )
{
b=true;
break;
}
}
判断为ture就不是质数(好像if的括号要改成begin endif)
首先用一个变量num来接收这个数。
再声明一个bool变量b=false.
然后用一个for循环,起始值为2结束值小于num
在循环里判断
for(int i=0;i
{
b=true;
break;
}
}
判断为ture就不是质数(好像if的括号要改成begin endif)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯