DSAP & C/C++ – Page 4
Có thể bạn quan tâm
Nguồn: http://vn.spoj.com/problems/MYSTERY/ Đấ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 qủa
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:
10Kết qủa
7291779Vì kết quả lớn, nên phải viết hàm tính mũ riêng sử dụng thuật toán bình phương nhân:
#include <stdio.h> #include <math.h> #define MOD 20122007 unsigned long long pw(int n, int x) { if(n==1) return x; unsigned long long t = pw(n/2, x); t *= t; t %= MOD; if(n%2) return x*t; return t; } int main() { int a, i; unsigned long long t = 1; scanf("%d", &a); for(i=1; i*i<a; i++) if(a%i==0) { t *= pw(i, 3)-1; t %= MOD; t *= pw(a/i, 3)-1; t %= MOD; } if((int)sqrt(a)*(int)sqrt(a)==a) { t *= pw(sqrt(a), 3)-1; t %= MOD; } printf("%llu", t); return 0; }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
-
MYSTERY Spoj – Số Huyền Bí
-
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