Điểm:
1800 (p)
Thời gian:
0.8s
Bộ nhớ:
1G
Input:
bàn phím
Output:
màn hình
Một đàn ong mật có \(N\) con được đánh số từ \(1\) đến \(N\), con thứ \(i(1 \le i \le N)\) có trọng lượng là số nguyên \(A_i\).
Biết rằng nếu một con ong có trọng lượng \(X\) thì trong một ngày sản xuất được lượng mật là \(X * f(X)\), với \(f(X)\) là số ước dương của \(X\).
- Yêu cầu: Hãy tính tổng lượng mật sản xuất được trong một ngày của cả đàn ong.
Input
- Dòng đầu ghi duy nhất số nguyên dương \(N\).
- Dòng thứ hai lần lượt \(A_1,A_2,...,A_N\), các số cách nhau ít nhất một dấu cách.
Output
- Một số duy nhất là tổng lượng mật sản xuất được trong một ngày của cả đàn ong.
Scoring
- Subtask \(1\) (\(30\%\) số điểm): \(N \le 1000 , A_i \le 10^8 .\)*
- Subtask \(2\) (\(30\%\) số điểm): \(N \le 10^5 , A_i \le 10^6 .\)*
- Subtask \(3\) (\(20\%\) số điểm): \(N \le 10^5 , A_i \le 2.10^7 .\)*
- Subtask \(4\) (\(20\%\) số điểm): \(N \le 10^5 , A_i \le 10^8.\)*
Example
Test 1
Input
4
1 2 3 4
Output
23
Bình luận
My solution
Bài này có thể giải bằng sàng căn 3 và không cần dùng phép thử miller rabin
Chúng ta cần nhớ đến tính chất của 1 số nguyên:
Dựa vào tính chất này, ta có thê giải bài này như sau:
B1: Lập một vector v, push_back tất cả các số nguyên tố trong khoảng từ 2 đến 10000 vào vector này.
B2: Lập 1 hàm đếm ước p(n) như sau: đặt biến kết quả res = 1, duyệt tất cả các phần tử i trong vector v (i ở đây được coi là số nguyên tố được push_back vào mảng v chứ không phải chỉ số nhé), nếu như n chia hết cho i thì đặt biến đếm cnt = 0, dùng vòng while(n % i == 0) n /= i, cnt++. cuối cùng là nhân res với (cnt + 1). Kết quả của hàm là return res;
B3: Lập 1 mảng f[10 ^ 7], với mỗi a[i] ta lưu p(a[i]) vào f[a[i]] để nếu như sau có số a[i] thì không phải gọi lại hàm mà có thể dùng kết quả từ mảng f. Rồi cộng hết vào biến kết quả rồi in ra là xong rồi.
Code tham khảo (Vạn lần xin bro đừng cop mà chỉ xem khi quá bí và khi đã làm theo cách trên mà vẫn không được):
https://ideone.com/7UaRJ4
Nếu thấy hay thì cho tôi xin 1 upvote nhé =)))
Đồng thời nếu có gì sai sót thì trả lời lại comment này nhé.
thanks =))
hay
xàm à
Ngau qua a oi