MYSTERY Spoj – Số Huyền Bí
Có thể bạn quan tâm
Nguồn đề bài: http://vn.spoj.com/problems/MYSTERY/
1. Đề bài MYSTERY spoj
Đất nước Văn Lang thời cổ xưa đã có những hiểu biết tân tiến về số học. Tương truyền rằng, vua Hùng Vương thứ 17 cùng các trưởng lão trong triều đình đã phát minh ra các số huyền bí. Các số này giúp chỉ dẫn đường vào kho tàng của đất nước.
Theo các chứng tích khảo cổ, các nhà khoa học kết luận rằng số huyền bí cơ sở a bằng tích của (3d-1) với mọi ước số d > 0 của a.
Bờm thích số học đồng thời cũng rất thích tìm hiểu lịch sử đất nước. Bạn hãy giúp Bờm tính số huyền bí cơ sở a (1 ≤ a ≤ 109). Do kết quả có thể rất lớn, bạn chỉ cần in ra phần dư của số huyền bí cơ sở a khi chia cho 20122007.
Dữ liệu
Gồm một số nguyên a duy nhất.
Kết quả
In ra số nguyên duy nhất là phần dư của số huyền bí cơ sở a khi chia cho 20122007.
Ví dụ
Dữ liệu: 10
Kết qủa 7291779
2. Hướng dẫn MYSTERY spoj
– xây dựng hàm power mod (lũy thừa nhanh).
– trực hiện duyệt trâu các số mà a chia hết cho nó.
3. code tham khảo MYSTERY spoj
const fi='; base=20122007; type data=longint; var f:text; A,i:data; res:int64; function powermod(a,b:int64):int64; var t:int64; begin if b=0 then exit(1); if b mod 2 = 0 then begin t:=powermod(a,b div 2); exit((t*t) mod base); end; exit((a*powermod(a,b-1)) mod base); end; begin assign(f,fi); reset(f); readln(f,a); close(f); res:=1; for i:=1 to trunc(sqrt(a)) do if a mod i = 0 then begin res:=(res*(powermod(3,i)-1)) mod base; if ((a div i)<>i) then res:=(res*(powermod(3,a div i)-1)) mod base; end; writeln(res); end.| 12345678910111213141516171819202122232425262728293031323334 | constfi=';base=20122007;type data=longint;varf:text;A,i:data;res:int64; functionpowermod(a,b:int64):int64;vart:int64;beginifb=0thenexit(1);ifbmod2=0thenbegint:=powermod(a,bdiv2);exit((t*t)mod base);end;exit((a*powermod(a,b-1))mod base);end; beginassign(f,fi);reset(f);readln(f,a);close(f);res:=1;fori:=1totrunc(sqrt(a))doifamodi=0thenbeginres:=(res*(powermod(3,i)-1))mod base;if((adivi)<>i)thenres:=(res*(powermod(3,adivi)-1))mod base;end;writeln(res);end. |
Từ khóa » Số Huyền Bí C++
-
MYSTERY – Số Huyền Bí | Lập Trình C/C++
-
MYSTERY - Số Huyền Bí - Tutorial SPOJ
-
MYSTERY - Số Huyền Bí - VietCodes
-
SỐ HUYỀN BÍ – MYSTERY – SPOJ | LÀM HẾT MÌNH
-
MYSTERY - VNOI
-
Số Huyền Bí - VNOJ: VNOI Online Judge
-
Problem MYSTERY
-
Hạn Chế Huyền Bí Trên Std :: Binary_search
-
DSAP & C/C++ – Page 4
-
Bài đăng Này được Soạn Trên điện Thoại, Hết Lòng Vì Anh Em Nhé
-
Tổng Hợp 10+ Tìm Số Fibonacci Thứ N Tốt Nhất Hiện Nay
-
Tin Học - Dương Đức Tài
-
10 Từ Khóa Không Thể Không Biết Trong C++ OOP