Tìm số Fibonacci lớn nhất là nguyên tố và nhỏ hơn M
1 Like
Viết hàm tính số Fibbonaci trước đi! Mọi thứ bắt đầu từ đó!
3 Likes
Chép - dán mã lên đây! Không chụp hình!
Xem ra bạn làm ổn đấy, kết quả đúng không bạn?
Lưu ý: 2<M<2000000000
nên chỉ cần dùng int
(MAX_INT = 2,147,483,647
) là đủ.
Rút ngắn bằng cách:
- Không cần lưu mảng, chỉ cần 3 giá trị (
x, y, z
chẳng hạn) để lưu choa[i]
,a[i-1]
, vàa[i-2]
. Vẫn có thể giảm xuống còn 2. - Kiểm tra số nguyên tố ngay sau khi tính được số Fibbonaci, gán vào biến tạm. Khi kết thúc vòng lặp, giá trị hiện có của biến tạm là kết quả.
3 Likes
Tự nhiên thấy hay hay, làm thẻ spoil kiểu gì nhỉ.
...
def fibonacci_prime(n):
def prime(num):
for i in range(2, num//2):
if not num%i:
return False
return True
result = -1
a = 0
b = 1
c = a + b
while c + b < n:
a = b
b = c
c = a+b
if prime(c):
result = c
return result
1 Like