Trong bài toán này, chúng ta được cho một giá trị n. Nhiệm vụ của chúng ta là tìm giá trị của (n ^ 1 + n ^ 2 + n ^ 3 + n ^ 4) mod 5 cho n đã cho .
Hãy lấy một ví dụ để hiểu vấn đề,
Input : n= 5 Output : 0
Giải thích -
(51 + 52 + 53 + 54) mod 5 = (5 + 25 + 125 + 625) mod 5 = (780) mode 5 = 0
Phương pháp tiếp cận giải pháp
Một giải pháp đơn giản cho vấn đề là tìm trực tiếp giá trị của phương trình với giá trị đã cho của N và sau đó tính môđun của nó với 5.
Ví dụ
Chương trình minh họa hoạt động của giải pháp của chúng tôi
#include <iostream> using namespace std; int findMod5Val(int n){ int val = (n + (n*n) + (n*n*n) + (n*n*n*n)); return val%5; } int main(){ int n = 12; cout<<"For N = "<<n<<", the value of (n^1 + n^2 + n^3 + n^4)\%5 is "<<findMod5Val(n); return 0; }
Đầu ra
For N = 12, the value of (n^1 + n^2 + n^3 + n^4)%5 is 0
Một giải pháp khác cho vấn đề là sử dụng công thức toán học và tổng quát hóa của hàm.
$ \ mathrm {f (n) \:=\ :( n \:+ \:n ^ 2 \:+ \:n ^ 3 \:+ \:n ^ 4)} $
$ \ mathrm {f (n) \:=\:n ^ * (1 \:+ \:n \:+ \:n ^ 2 \:+ \:n ^ 3)} $
$ \ mathrm {f (n) \:=\:n ^ * (1 ^ * (1 + n) + n ^ {2 *} (1 + n))} $
$ \ mathrm {f (n) \:=\:n ^ * ((1 + n ^ 2) ^ * (1 + n))} $
$ \ mathrm {f (n) \:=\:n ^ * (n + 1) ^ * (n ^ 2 + 1)} $
Đối với phương trình này, chúng ta có thể suy ra rằng giá trị của f (n)% 5 có thể là 0 hoặc 4 dựa trên giá trị của n.
if(n%5 == 1), f(n)%5 = 4 Else, f(n)%5 = 0
Ví dụ
Chương trình minh họa hoạt động của giải pháp của chúng tôi
#include <iostream> using namespace std; int findMod5Val(int n){ if(n % 4 == 1) return 4; return 0; } int main(){ int n = 65; cout<<"For N = "<<n<<", the value of (n^1 + n^2 + n^3 + n^4)\%5 is "<<findMod5Val(n); return 0; }
Đầu ra
For N = 65, the value of (n^1 + n^2 + n^3 + n^4)%5 is 4