自然數m,n,m∈(1,x),n∈(1,y),求m,n互質(即m,n 最大公約數為1)的概率
x,y 驅於無窮大時,此概率的極限為6/π^2
function getpmn(byval x as long, y as long) as double
dim a() as byte, i as long, temp as double, p as long
if x > y then
temp = x
x = y
y = temp
end if
if x = 1 then getpmn = 1: exit function
getpmn = 1 - ((x \ 2) / x) * ((y \ 2) / y)
redim a(1 to x)
p = 3
do while p <= x
if p <= sqr(x) then
temp = p * p
k = 0
for i = temp to x step 2 * p 'p的倍數
a(i) = 1 '設為1表示合數
next
end if
getpmn = getpmn * (1 - ((x \ p) / x) * (y \ p) / y)
again:
p = p + 2
if p > x then exit do
if a(p) = 1 then goto again
loop
end function
private sub command1_click()
dim mytime as double
mytime = timer
debug.print "x=20000000,y=10000000 時, m,n互質的概率為:" & getpmn(20000000, 10000000); "總計用時 " & format(timer - mytime, "0.0000") & " 秒!"
end sub
返回:x=20000000,y=10000000 時, m,n互質的概率為:0.607927217465724 總計用時 2.1254 秒!
關於互質數
自然數m,n,m 1,x n 1,y 求m,n互質 即m,n 最大公約數為1 的概率 x,y 驅於無窮大時,此概率的極限為6 2 function getpmn byval x as long,y as long as double dim a as byte,i as long,temp as d...
什麼是互質數(或互素數)
素數也稱為質數。明白為什麼互質數也稱為互素數了吧。什麼是互質數 或互素數 答案如下 1 兩個質數一定是互質數。例如,2與7 13與19。2 乙個質數如果不能整除另乙個合數,這兩個數為互質數。例如,3與10 5與 26。3 1不是質數也不是合數,它和任何乙個自然數在一起都是互質數。如1和9908。4 ...
尤拉函式求互質數個數
求解與n 1 n 1 互質的質因子的個數 解析 定義 對於正整數n,n 是小於或等於n的正整數中,與n互質的數的數目。例如 8 4,因為1,3,5,7均和8互質。性質 1.若p是質數,p p 1.2.若n是質數p的k次冪,n p 1 p k 1 因為除了p的倍數都與n互質 3.尤拉函式是積性函式,若...