Số Fibonacci và số nguyên tố trong Python

Học lập trình web

Bài toán:

Số Fibonacci và số nguyên tố:

          a) Tìm số Fibonacci thứ n (n <= 40)

          b) Tìm các số Fibonacci nhỏ hơn hoặc bằng n.

          c) Tìm các số Fibonacci  nằm trên đoạn [m, n].          

d) Tìm các số vừa là số Fibonacci vừa là số nguyên tố trên đoạn [m, n].

Lời giải tham khảo:

a) Để tìm số Fibonacci thứ n (n <= 40), chúng ta có thể sử dụng công thức đệ quy hoặc phương pháp lặp.

Sử dụng công thức đệ quy:

def fibonacci(n):
    if n <= 1:
        return n
    else:
        return fibonacci(n-1) + fibonacci(n-2)

Ví dụ: để tìm số Fibonacci thứ 10, ta gọi hàm fibonacci(10), kết quả sẽ là 55.

b) Để tìm các số Fibonacci nhỏ hơn hoặc bằng n, ta có thể sử dụng một vòng lặp để tính toán và in ra các số Fibonacci cho đến khi số Fibonacci vượt quá n.

def fibonacci_sequence(n):
    fib_sequence = []
    a, b = 0, 1
    while a <= n:
        fib_sequence.append(a)
        a, b = b, a + b
    return fib_sequence

Ví dụ: để tìm các số Fibonacci nhỏ hơn hoặc bằng 100, ta gọi hàm fibonacci_sequence(100), kết quả sẽ là [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89].

c) Để tìm các số Fibonacci nằm trên đoạn [m, n], ta sẽ sử dụng một vòng lặp để tính toán và in ra các số Fibonacci trong đoạn đó.

def fibonacci_range(m, n):
    fib_range = []
    a, b = 0, 1
    while a <= n:
        if a >= m:
            fib_range.append(a)
        a, b = b, a + b
    return fib_range

Ví dụ: để tìm các số Fibonacci nằm trên đoạn [10, 100], ta gọi hàm fibonacci_range(10, 100), kết quả sẽ là [13, 21, 34, 55, 89].

d) Để tìm các số vừa là số Fibonacci vừa là số nguyên tố trên đoạn [m, n], ta sẽ kiểm tra từng số Fibonacci trong đoạn đó xem có phải số nguyên tố hay không.

def is_prime(num):
    if num <= 1:
        return False
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            return False
    return True

def fibonacci_prime_range(m, n):
    fib_primes = []
    a, b = 0, 1
    while a <= n:
        if a >= m and is_prime(a):
            fib_primes.append(a)
        a, b = b, a + b
    return fib_primes

Ví dụ: để tìm các số vừa là số Fibonacci vừa là số nguyên tố trên đoạn [10, 100], ta gọi hàm `fibonacci_prime_range(10, 100)`, kết quả sẽ là [13, 89].

Trong ví dụ trên, chúng ta sử dụng hàm is_prime() để kiểm tra xem một số có phải là số nguyên tố hay không. Hàm này kiểm tra từ 2 đến căn bậc hai của số đó để xác định tính nguyên tố. Nếu số đó chia hết cho một số trong khoảng đó, thì nó không là số nguyên tố.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *