兩種方法比較其運算時間
#在這裡 python 輸出指定範圍內的素數
# 素數(prime number)又稱質數,有無限個。除了1和它本身以外不再被其他的除數整除。
# 以下例項可以輸出指定範圍內的素數:
#使用者輸入指定的數字範圍
a =int
(input
('輸入區間最小值:'))
b =int
(input
('輸入區間最大值:'))
import time
t1 = time.time(
)c =
count =
0for num in
range
(a,b+1)
:if num>1:
for i in
range(2
,num):if
(num%i)==0
:break
else
: count +=
1print
('(,)區間內的素數有個集合為'
.format
(a,b,c,count)
)t2 = time.time(
)print
('計算時間為:'
,t2-t1)插入**片
#使用到"開根號法"來節約時間複雜度
a =int
(input
('輸入區間最小值:'))
b =int
(input
('輸入區間最大值:'))
import time
import math
t1 = time.time(
)c =
count =
0for num in
range
(a,b+1)
:# 找到平方根,減少演算法時間
squre_num = math.floor(num**
0.5)
# 素數大於 1
if num>1:
for i in
range(2
,(squre_num+1)
):if(num%i)==0
:#將平方根加1是為了能取到平方根那個值
break
else
: count +=
1print
('(,)區間內的素數有個集合為'
.format
(a,b,c,count)
)t2 = time.time(
)print
('計算時間為:'
,t2-t1)
輸出指定範圍內的所有質數
以上程式輸出所有不大於999的質數,產生格式化輸出。程式採用篩選的思想對指定範圍內的所有正整數進行排除,最後得以 倖存 的全部都為質數。該演算法思想詳見維基百科sieve of eratosthenes相關條目。需要注意的是以上c 實現中的外層迴圈只用進行到sqrt upper 證明如下 假設存在乙...
使用函式輸出指定範圍內的Fibonacci數
本題要求實現乙個計算fibonacci數的簡單函式,並利用其實現另乙個函式,輸出兩正整數m和n 0函式介面定義 int fib int n void printfn int m,int n 其中函式fib須返回第n項fibonacci數 函式printfn要在一行中輸出給定範圍 m,n 內的所有fi...
使用函式輸出指定範圍內的完數
本題要求實現乙個計算整數因子和的簡單函式,並利用其實現另乙個函式,輸出兩正整數mm和nn 0函式介面定義 int factorsum int number void printpn int m,int n 其中函式factorsum須返回int number的因子和 函式printpn要逐行輸出給定...