Mã nguồn
# Python Program to find the factors of a number
# This function computes the factor of the argument passed
def print_factors[x]:
print["The factors of",x,"are:"]
for i in range[1, x + 1]:
if x % i == 0:
print[i]
num = 320
print_factors[num]
Đầu ra
The factors of 320 are: 1 2 4 5 8 10 16 20 32 40 64 80 160 320
Lưu ý: Để tìm các yếu tố của một số khác, hãy thay đổi giá trị của num
. To find the factors of another number, change the value of num
.
Trong chương trình này, số có hệ số sẽ được tìm thấy được lưu trữ trong num
, được chuyển đến hàm print_factors[]
. Giá trị này được gán cho biến X trong print_factors[]
.
Trong hàm, chúng tôi sử dụng vòng
The factors of 320 are: 1 2 4 5 8 10 16 20 32 40 64 80 160 3200 để lặp lại từ i bằng x. Nếu x hoàn toàn chia hết bởi tôi, thì đó là yếu tố của x.
Dưới đây là một ví dụ nếu bạn muốn sử dụng số số nguyên tố để đi nhanh hơn rất nhiều. Những danh sách này rất dễ tìm thấy trên internet. Tôi đã thêm ý kiến trong mã.
# //primes.utm.edu/lists/small/10000.txt
# First 10000 primes
_PRIMES = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29,
31, 37, 41, 43, 47, 53, 59, 61, 67, 71,
73, 79, 83, 89, 97, 101, 103, 107, 109, 113,
127, 131, 137, 139, 149, 151, 157, 163, 167, 173,
179, 181, 191, 193, 197, 199, 211, 223, 227, 229,
233, 239, 241, 251, 257, 263, 269, 271, 277, 281,
283, 293, 307, 311, 313, 317, 331, 337, 347, 349,
353, 359, 367, 373, 379, 383, 389, 397, 401, 409,
419, 421, 431, 433, 439, 443, 449, 457, 461, 463,
467, 479, 487, 491, 499, 503, 509, 521, 523, 541,
547, 557, 563, 569, 571, 577, 587, 593, 599, 601,
607, 613, 617, 619, 631, 641, 643, 647, 653, 659,
661, 673, 677, 683, 691, 701, 709, 719, 727, 733,
739, 743, 751, 757, 761, 769, 773, 787, 797, 809,
811, 821, 823, 827, 829, 839, 853, 857, 859, 863,
877, 881, 883, 887, 907, 911, 919, 929, 937, 941,
947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013,
# Mising a lot of primes for the purpose of the example
]
from bisect import bisect_left as _bisect_left
from math import sqrt as _sqrt
def get_factors[n]:
assert isinstance[n, int], "n must be an integer."
assert n > 0, "n must be greather than zero."
limit = pow[_PRIMES[-1], 2]
assert n