Project Euler, problem 1 Bài 02 Mỗi số hạng mới trong dãy Fibonacci được tạo ra bằng cách cộng hai số hạng liền trước.. Tính tổng của tất cả các số hạng chẵn trong dãy có giá trị không q
Trang 1Bài 01 Nếu ta liệt kê tất cả các số tự nhiên nhỏ hơn 10 là bội của 3 hoặc 5, ta được 3, 5, 6 và 9
Tổng các số này bằng 23
Tính tổng của tất cả các bội của 3 hoặc 5 nhỏ hơn 1000
(Project Euler, problem 1)
Bài 02 Mỗi số hạng mới trong dãy Fibonacci được tạo ra bằng cách cộng hai số hạng liền trước
Bắt đầu với 1 và 2, ta có 10 số hạng đầu tiên là:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
Tính tổng của tất cả các số hạng chẵn trong dãy có giá trị không quá 4 triệu
Project Euler, problem 2
Bài 03 Các ước số nguyên tố của 13195 là 5, 7, 13 và 29
Tính ước số nguyên tố lớn nhất của số 600851475143
Project Euler, problem 3
Bài 04 Số palindrome là số mà đọc từ trái sang hay từ phải sang đều cho kết quả như nhau Số
palindrome lớn nhất tạo bởi tích của hai số có 2 chữ số là 9009 = 91 x 99
Tìm palindrome lớn nhất tạo bởi tích của hai số của 3 chữ số
Project Euler, problem 4
Bài 05 2520 là số nhỏ nhất chia hết cho tất cả các số từ 1 đến 10
Tính số nhỏ nhất chia hết cho tất cả các số từ 1 đến 20
Project Euler, problem 5
Bài 06 Tổng bình phương của 10 số tự nhiên đầu tiên là,
12 + 22 + + 102 = 385
Bình phương tổng của 10 số tự nhiên đầu tiên là,
(1 + 2 + + 10)2 = 552 = 3025
Do đó hiệu của tổng bình phương và bình phương tổng của 10 số tự nhiên đầu tiên là 3025
? 385 = 2640
Tìm hiệu của tổng bình phương và bình phương tổng của 100 số tự nhiên đầu tiên
Project Euler, problem 6
Bài 07 Bằng cách liệt kê 6 số nguyên tố đầu tiên 2, 3, 5, 7, 11 và 13, ta thấy số nguyên tố thứ 6 là
13
Tìm số nguyên tố thứ 10001
Project Euler, problem 7
MỘT SỐ BÀI TẬP RÈN LUYỆN KỸ NĂNG TƯ DUY
Trang 2Bài 08 Tính tích lớn nhất của 5 chữ số liên tiếp trong số có 1000 chữ số sau:
73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 85861560789112949495459501737958331952853208805511 12540698747158523863050715693290963295227443043557 66896648950445244523161731856403098711121722383113 62229893423380308135336276614282806444486645238749 30358907296290491560440772390713810515859307960866 70172427121883998797908792274921901699720888093776 65727333001053367881220235421809751254540594752243 52584907711670556013604839586446706324415722155397 53697817977846174064955149290862569321978468622482 83972241375657056057490261407972968652414535100474 82166370484403199890008895243450658541227588666881 16427171479924442928230863465674813919123162824586 17866458359124566529476545682848912883142607690042 24219022671055626321111109370544217506941658960408 07198403850962455444362981230987879927244284909188 84580156166097919133875499200524063689912560717606 05886116467109405077541002256983155200055935729725 71636269561882670428252483600823257530420752963450 Project Euler, problem 8
Bài 09 Một bộ ba số Pythagore là một tập ba số tự nhiên, a < b < c, sao cho,
a2 + b2 = c2
Ví dụ, 32 + 42 = 9 + 16 = 25 = 52
Chỉ có đúng một bộ ba Pythagore sao cho a + b + c = 1000
Tìm tích abc
Project Euler, problem 9
Bài 10 Tổng các số nguyên tố nhỏ hơn 10 là 2 + 3 + 5 + 7 = 17
Tìm tổng tất cả các số nguyên tố nhỏ hơn 2 triệu
Project Euler, problem 10
Bài 11 Có 4 số nguyên tố không vượt quá 10: 2, 3, 5, 7
Có 25 số nguyên tố không vượt quá 100
Hỏi có bao nhiêu số nguyên tố không vượt quá 920092009?
Trang 3Bài 12 Phân số đơn vị là các phân số có tử số bằng 1 Dưới đây là biểu diễn thập phân của các
phân số đơn vị với mẫu số từ 2 đến 10:
1/2 = 0.5
1/3 = 0.(3)
1/4 = 0.25
1/5 = 0.2
1/6 = 0.1(6)
1/7 = 0.(142857)
1/8 = 0.125
1/9 = 0.(1)
1/10 = 0.1
Với 0.1(6) nghĩa là 0.166666 , và có chu kz bằng 1 Ta thấy 1/7 có chu kz bằng 6
Tìm giá trị d < 1000 sao cho 1/d có chu kz dài nhất trong biểu diễn thập phân (biết rằng chỉ
có duy nhất một đáp án)
Project Euler, problem 26
Bài 13 Trong phương trình sau, x, y, và n là các số nguyên dương
1/x+1/y=1/n
Với n = 4, có đúng 3 nghiệm phân biệt :
1/5+1/20=1/4
1/6+1/12=1/4
1/8+1/8=1/4
Tìm giá trị nhỏ nhất của n để số nghiệm phân biệt vượt quá 1000
Project Euler, problem 108
Bài 14 648 là số tự nhiên n nhỏ nhất sao cho n/2 là số chính phương và n/3 là số lập phương:
648 / 2 = 324 = 18^2
648 / 3 = 216 = 6^3
Tìm số tự nhiên nhỏ nhất sao cho n/2 là số chính phương, n/3 là số lập phương và n/5 là lũy thừa bậc 5
Bài 15 Trong phương trình sau x, y, và n là các số nguyên dương
1/x+1/y=1/n
Có thể kiểm tra khi n = 1260 phương trình có 113 nghiệm phân biệt và đây là giá trị n nhỏ nhất để số nghiệm phân biệt của phương trình vượt quá 100
Tìm giá trị n nhỏ nhất để số nghiệm phân biệt của phương trình vượt quá 4 triệu
Chú {: Đây là phiên bản khó hơn của bài 13 và cần cách cài đặt thông minh hơn thuật toán vét cạn
Project Euler, problem 110
Trang 4Bài 16 Một hàng độ dài 7 đơn vị được lấp bởi các thanh màu đỏ có độ dài ít nhất 3 đơn vị, sao
cho bất kz hai thanh nào (có thể có độ dài khác nhau) cách nhau bởi ít nhất một ô màu đen Có đúng 17 cách lấp
Có bao nhiêu cách lấp một hàng độ dài 50 đơn vị?
Chú {: Bạn có thể dùng các thanh có độ dài khác nhau Ví dụ để lấp hàng có độ dài 8 đơn
vị, bạn có thể dùng thanh đỏ (3), ô đen (1) và đỏ (4)
Project Euler, problem 114
Bài 17 Đi từ trái sang phải, nếu không có chữ số nhỏ hơn chữ số đứng trước thì số đang xét gọi là
số tăng; ví dụ, 134468
Tương tự nếu không có chữ số nào nhỏ hơn số đứng sau thì gọi là số giảm, ví dụ 66420
Ta gọi một số tự nhiên không tăng cũng không giảm là số "hoạt bát", ví dụ 155349
Khi n tăng, tỉ lệ số "hoạt bát" nhỏ hơn n cũng tăng sao cho chỉ có 12951 số không "hoạt bát" nhỏ hơn 1 triệu và chỉ có 277032 số không "hoạt bát" nhỏ hơn 1010
Có bao nhiêu số không "hoạt bát" nhỏ hơn số googol (10100)?
Project Euler, problem 113
Bài 18 874 = 19x46 là số tự nhiên nhỏ nhất có tổng các chữ số 8 + 7 + 4 = 19 và chia hết cho 19
Tìm số tự nhiên nhỏ nhất có tổng các chữ số bằng 2009 và chia hết cho 2009
Bài 19 Mọi hợp số lẻ đều có thể biểu diễn dưới dạng tổng các số tự nhiên liên tiếp với nhiều hơn
2 số hạng (bạn chứng minh được không?) Ví dụ, số 99 có 4 cách biểu diễn:
99 = 4 + 5 + 6 + + 14
99 = 7 + 8 + 9 + + 15
99 = 14 + 15 + 16 + + 19
99 = 32 + 33 + 34
Trong số các cách biểu diễn trên, 99 = 4 + 5 + 6 + + 14 là cách biểu diễn có số hạng đầu tiên bé nhất
Tìm số hạng đầu tiên bé nhất khi biểu diễn số 555666777888999 dưới dạng tổng của các
số tự nhiên liên tiếp có nhiều hơn 2 số hạng
Bài 20 Có một giỏ trứng "thần kz" với tính chất sau đây:
Nếu mỗi lần lấy ra từ giỏ i quả trứng, thì sau khi lặp lại một số lần, giỏ sẽ còn dư lại i-1 quả trứng (với 2 ≤ i ≤ 30)
Hỏi tổng số quả trứng nhỏ nhất có thể có của giỏ trứng này bằng bao nhiêu?
Bài 21 Tìm 9 chữ số cuối cùng của 329!.
Bài 22 Tìm 9 chữ số cuối cùng của số 319891989 1989
(số tạo bởi 1989 lặp lại của số 1989)
Trang 5Bài 23 Hàm ⱷ(n) (đọc là "phi" n) được định nghĩa bằng số số tự nhiên không vượt quá n và
nguyên tố cùng nhau với n Nói cách khác:
ⱷ(n)=|{d | 1 ≤ d ≤ n ˄ (d,n)=1}|
Ví dụ ⱷ(12) = 4 bao gồm các số 1,5,7,11
Tính ⱷ(123456)
Bài 24 Với hàm ⱷ(n) được định nghĩa như trong Bài 23, tính ⱷ(9876543210)
Bài 25 Với mọi số k cho trước, luôn tìm được k số tự nhiên liên tiếp sao cho mỗi số đều chia hết
cho một số chính phương nào đó Bạn sẽ nhận ra cách chứng minh khẳng định này trong bài toán sau:
Tìm số tự nhiên n nhỏ nhất sao cho:
n chia hết cho 4
n+1 chia hết cho 9
n+2 chia hết cho 25
n+3 chia hết cho 49
n+4 chia hết cho 121
n+5 chia hết cho 169
Bài 26 Số nguyên dương d được gọi là bậc của a theo modulo m nếu như d là số nguyên dương
nhỏ nhất sao cho:
ad ≡ 1 (mod m)
Ví dụ bậc của 2 theo modulo 7 là 3 vì:
21 ≠ 1 (mod 7)
22 ≠ 1 (mod 7)
và
23 ≡ 1 (mod 7)
Không phải lúc nào cũng tồn tại bậc của a theo modulo m Ví dụ khi a=2 và m=4
Tìm bậc của 5 theo modulo 1975300489
Bài 27 Với hàm ⱷ(n) định nghĩa như trong bài 23 và khái niệm bậc của a theo modulo m định
nghĩa như trong bài 26, ta có khái niệm:
Số tự nhiên a gọi là căn nguyên thủy (primitive root) của m nếu a có bậc ⱷ(m) theo modulo m
Ví dụ 3 là một căn nguyên thủy của 7 vì 3 có bậc ⱷ(7)=6 theo modulo 7:
31 ≡ 3 (mod 7)
32 ≡ 2 (mod 7)
33 ≡ 6 (mod 7)
34 ≡ 4 (mod 7)
35 ≡ 5 (mod 7)
36 ≡ 1 (mod 7)
Việc a là căn nguyên thủy của m có một { nghĩa đặc biệt: tất cả các số d sao cho (d, m)=1 đều biểu diễn được dưới dạng lũy thừa của a theo modulo m
Số 7 có hai căn nguyên thủy là 3 và 5
Tìm số tự nhiên nhỏ nhất có căn nguyên thủy và tất cả các căn nguyên thủy đều không nhỏ hơn 40
Trang 6Bài 28 Chỉ có 2 cách sắp xếp 3 con xe lên bàn cờ vua 3x3 sao cho không có 2 con xe nào tấn công
lẫn nhau và không có con xe nào nằm trên đường chéo chính:
Hỏi có bao nhiêu cách sắp xếp 20 con xe lên bàn cờ vua 20x20 để thỏa mãn điều kiện tương tự?
Bài 29 Định l{ Fermat nhỏ phát biểu như sau
Nếu p là số nguyên tố thì ap-1 ≡ 1 (mod p) với mọi (a,p)=1
Người ta nảy ra câu hỏi ngược: giả sử p là số sao cho ap-1 ≡ 1 (mod p) với mọi (a, p)=1, liệu
p có phải là số nguyên tố không?
Câu trả lời là không, vì có những hợp số cũng có tính chất này Các hợp số như vậy được gọi là số Carmichael
Số Carmichael nhỏ nhất là số 561
Tìm số Carmichael thứ 160
Bài 30 Số có tổng các ước thật sự lớn nhất trong phạm vi từ 1 đến 50 là 48
Tổng các ước thật sự của 48 bằng:
1 + 2 + 3 + 4 + 6 + 8 + 12 + 16 + 24 = 76
Tìm số có tổng các ước thật sự lớn nhất trong phạm vi từ 1 đến 108
English Translation: Find the number in the range from 1 to 108 that has the maximum sum
of proper divisors
Bài 31 Phương trình đồng dư x3
- 2x + 4 ≡ 0 (mod 5) có 2 nghiệm là x ≡ 3 (mod 5) và x ≡ 4 (mod 5) Đếm số nghiệm của phương trình đồng dư:
x3 - 2x + 4 ≡ 0 (mod 125)
English Translation: Find the number of solutions of the above congruence equation
Bài 32 Nghiệm lớn nhất của phương trình đồng dư x3
- 2x + 4 ≡ 0 (mod 25) là 30:
303 - 2.30 + 4 ≡ 0 (mod 25)
Tìm nghiệm lớn nhất của phương trình đồng dư x3 - 2x + 4 ≡ 0 (mod 249)
English Translation: Find the maximum solution of the above congruence equation
Trang 7Bài 33 Bạn hãy giải bài toán cổ sau:
Vừa gà vừa chó,
Bó lại cho tròn,
Ba mươi sáu con,
Một trăm chân chẵn
Hỏi có bao nhiêu gà, bao nhiêu chó? Trả lời dưới dạng "x y" với x là số gà, y là số chó English Translation: There are 36 dogs and chickens and 100 legs How many chickens and how many dogs are there? Answer in the form "x y" where x is the number of chickens and
y is the number of dogs
Bài 34 Tìm nghiệm lớn nhất của phương trình đồng dư:
x3+494959959615343x2+348686257395285x+714226352220802 ≡ 0 (mod
1234567898765479)
English Translation: Find the maximum solution of the above congruence equation
Bài 35 Gọi p(n) là số cách khác nhau để chia n đồng xu thành các nhóm Ví dụ, p(5)=7 vì có 7 cách
chia 5 đồng xu thành các nhóm
OOOOO
OOOO O
OOO OO
OOO O O
OO OO O
OO O O O
O O O O O
Tìm giá trị nhỏ nhất của n sao cho p(n) chia hết cho 1 triệu
Project Euler, problem 78
Bài 36 Tính 1100
+ 2100 + + 1000000000000100 và in ra kết quả theo modulo 1000000000039
Bài 37 Trong các số từ 1 đến 10 có thể chọn ra nhiều nhất 5 số để các số đôi một không chia hết
cho nhau:
4 5 6 7 9
Hỏi trong các số từ 1 đến 1234567898 có thể chọn ra nhiều nhất bao nhiêu số để các số đôi một không chia hết cho nhau?
English Translation: What is the maximum number of positive integers can be chosen from
1 to 1234567898 such that no two numbers are divisible by each other?
Bài 38 Xét tất cả các số nguyên có dạng ab
với 2 ≤ a ≤ 5 and 2 ≤ b ≤ 5:
22=4, 23=8, 24=16, 25=32
32=9, 33=27, 34=81, 35=243
42=16, 43=64, 44=256, 45=1024
52=25, 53=125, 54=625, 55=3125
Nếu ta sắp các số này theo thứ tự tăng dần và loại bỏ các lặp lại, ta được dãy số sau:
4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125
Có bao nhiêu số phân biệt trong dãy sinh bởi ab với 2 ≤ a ≤ 100 and 2 ≤ b ≤ 100?
Project Euler, Problem 29
Trang 8Bài 39 Thật ngạc nhiên là chỉ có 3 số có thể viết dưới dạng tổng các lũy thừa bậc 4 của các chữ số
của nó:
1634 = 14 + 64 + 34 + 44
8208 = 84 + 24 + 04 + 84
9474 = 94 + 44 + 74 + 44
Vì 1 = 14 không phải là tổng nên không được tính vào
Tổng các số này là 1634 + 8208 + 9474 = 19316
Tìm tổng tất cả các số có thể viết dưới dạng tổng các lũy thừa bậc 5 của các chữ số của nó Project Euler, Problem 30
Bài 40 Đặt summod(n) = n mod 1 + n mod 2 + + n mod n
Ta có summod(10) = 10 mod 1 + 10 mod 2 + + 10 mod 10 = 0 + 0 + 1 + 2 + 0 + 4 + 3 + 2 +
1 + 0 = 13
Tính summod(1234567897)
Bài 41 Đặt sumdiv(n) = n div 1 + n div 2 + + n div n
Ta có: sumdiv(10) = 10 div 1 + 10 div 2 + + 10 div 10 = 10 + 5 + 3 + 2 + 2 + 1 + 1 + 1 + 1 +
1 = 27
Tính sumdiv(2000000000)
Bài 42 Với hàm sumdiv(n) được định nghĩa như bài 41, tính sumdiv(3004197507051954)
Bài 43 Số có nhiều ước nhất trong phạm vi từ 1 đến 100 là số 60, có 12 ước:
1 2 3 4 5 6 10 12 15 20 30 60
Tìm số có nhiều ước nhất trong phạm vi từ 1 đến 108 Trả lời dưới dạng "x y" với x là số tìm được, y là số ước của x Nếu có nhiều số có nhiều ước nhất, trả lời số bé nhất
English Translation: Find the number from 1 to 108 that has the maximum number of divisors Answer in the form "x y" where x is the number and y is its number of divisors If there is more than one such x, answer the minimum x
Bài 44 Đặt coprime(n) = |{(a,b) | 1 ≤ a,b ≤ n ˄ (a,b) = 1}|, nói cách khác coprime(n) là số cặp số
nguyên tố cùng nhau mà cả hai số có giá trị không vượt quá n
coprime(n) cũng bằng số điểm nguyên nhìn thấy được từ gốc tọa độ (không có điểm nguyên nào ở giữa) và nằm trong hình vuông (1,1)-(n,n)
Ví dụ, coprime(4) = 11 tương ứng với 11 cặp số:
(1, 1), (1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (3, 1), (3, 2), (3, 4), (4, 1), (4, 3)
Tính coprime(32202)
English Translation: Compute coprime(32202) with the function coprime as in the above definition
Bài 45 Với hàm coprime(n) được định nghĩa như trong bài 44, tính coprime(111222333)
Bài 46 Với hàm summod(n) định nghĩa như trong bài 40, tính 9 chữ số cuối cùng của
summod(3002193020945)
English Translation: Find the last 9 digits of summod(3002193020945)
Trang 9Bài 47 Bài này là một mở rộng của bài 37.
Trong 20 số lẻ đầu tiên có thể chọn ra nhiều nhất 13 số để các số đôi một không chia hết cho nhau:
9 11 13 15 17 19 21 23 25 29 31 35 37
Hỏi trong 68, 102, 1050 số lẻ đầu tiên có thể chọn chọn ra nhiều nhất bao nhiêu số để các
số đôi một không chia hết cho nhau?
Trả lời dưới dạng "x y z" với x, y, z là đáp án cho từng phần
English Translation: (This is an extension of problem 37) What is the maximum number of integers can be chosen from the first n odd numbers such that no two numbers are divisible by each other? Find the answer when n=68, 102 and 1050 Answer in the form "x
y z" where x, y, z is the answer for each part
Bài 48 Bài này sử dụng phương trình 1/x + 1/y = 1/n, với x, y, n là các số nguyên dương, tương tự
như bài 13
Tìm số nghiệm phân biệt của phương trình khi n=133823303952137982
English Translation: This problem uses the same equation 1/x + 1/y = 1/n, where x, y and n are positive integers as in problem 13 Find the number of solutions of the equation when n=133823303952137982
Bài 49 Ta gọi hình vuông đơn vị là hình vuông có dạng như sau:
S(n) là số hình tam giác có trong n*n hình vuông đơn vị xếp thành một hình vuông lớn
Ví dụ:
Với n =1 ta có hình vuông lớn như sau: (S(1) = 8)
Với n=2 ta có hình vuông lớn như sau: (S(2) = 44)
Nhiệm vụ của bạn là hãy tính 9 chữ số tận cùng của S(20082009)
English Translation: S(n) is the number of triangles in a n by n grid of unit squares
Compute S(20082009)
Bài 50 Có bao nhiêu cặp số nguyên (x,y) thỏa mãn 2007 ≤ x/y ≤ 2010 và xy ≤ 2007200820092010?
English Translation: How many pairs of integers (x, y) satisfying 2007 ≤ x/y ≤ 2010 and xy ≤ 2007200820092010?
Trang 10Bài 51 Đếm số cách chọn 2 ô 1x1x1 bất kì thuộc 1 khối rubik 3x3x3 2 cách chọn được xem là
giống nhau khi tồn tại 1 cách đặt rubik sao cho vị trí những ô được chọn trong 2 cách là như nhau VD: Với rubik 2x2x2, thì có 3 cách chọn 2 ô 1x1x1 - Chọn 2 ô cùng 1 hàng - Chọn 2 ô cùng 1 mặt nhưng khác hàng - Chọn 2 ô tương ứng với 2 đỉnh đối diện nhau
Bài 52 Tung một đồng xu cân đối cho đến khi thu được mặt ngửa thì dừng Tính xác suất để thí
nghiệm dừng sau một số chẵn lần tung?
Ghi kết quả dưới dạng phân số tối giản a/b (a,b là các số nguyên, UCLN(a,b) = 1)
Bài 53 Cần phải có tối thiểu bao nhiêu người trong phòng sao cho xác suất để có ít nhất hai người
có cùng ngày sinh trong tháng tư là lớn hơn 1/2
Giả sử rằng các ngày sinh là đồng khả năng và một năm có 366 ngày
Bài 54 Cho N = 999 9 (gồm 100 chữ số 9) Tìm số nguyên tố lớn nhất nhỏ hơn N