BÀI 4. BIỂU THỨC LƯỢNG GIÁC

Xem dạng PDF

Gửi bài giải

Điểm:100,00 (OI)
Giới hạn thời gian:2.0s
Giới hạn bộ nhớ:256M
Input:stdin
Output:stdout

Dạng bài

Bài toán 4

Với mỗi ~n \in \mathbb{N}~, đặt ~S_n := 4^n(\sin^{2n} 15^\circ + \cos^{2n} 15^\circ)~. Ta cần tính giá trị ~S_n \mod m~, i.e., số dư khi chia ~S_n~ cho ~m~ khi ~S_n~ có giá trị nguyên; quy ước giá trị này là ~-1~ nếu xảy ra trường hợp ~S_n~ không phải là số nguyên.

Input. Mỗi test chứa nhiều test cases. Dòng đầu tiên chứa số test cases ~t~ (~1 \le t \le 10^4~). Mỗi test case gồm 1 dòng chứa 2 số nguyên ~n, m~ cách nhau bởi 1 khoảng trắng (~1 \le m, n \le 10^8~).

Output. In ra kết quả ~S_n \mod m~.


Sample Input

5 
2 2 
3 4 
4 8 
5 2 
3 100

Sample Output

0
0
2
0
52

Lưu ý. Biết ~\sin 15^\circ~ và ~\cos 15^\circ~ là 2 số vô tỷ, nhưng ~S_n~ được thiết kế để tạo ra dãy số nguyên, i.e., ~S_n \in \mathbb{Z}, \forall n \in \mathbb{N}~. Các kiểu số thực thông thường của các ngôn ngữ lập trình hiện nay có hiệu ứng sai số không thể chấp nhận được khi làm tròn số thực thành số nguyên. Thuật toán của bạn cần nguyên hóa các công thức, bởi vì việc tính toán không chấp nhận sai sót dù chỉ 1-bit.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.