Ước số

View as PDF

Submit solution

Points: 100.00 (partial)
Time limit: 3.0s
Memory limit: 1024M
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Cho đoạn số nguyên [a,b] . Hãy tính u là số lượng các ước của tất cả các số nguyên trọng đoạn [a,b] và v là tổng tất cả các ước số của các số nguyên trong đoạn [a,b].

Input:

  • Dòng đầu ghi số nguyên dương T là số bộ dữ liệu
  • T dòng tiếp theo, mỗi dòng ghi hai số nguyên a,b thể hiện một bộ dữ liệu.

Output:

Gồm T dòng, mỗi dòng ghi hai số nguyên u,v thể hiện kết quả của bộ dữ liệu tương ứng

Example:

input

2
1 2
4 5

output

3 4
5 13
Ghi chú:
  • Subtask 1: ~T≤10~; ~a,b≤1000~
  • Subtask 2: ~T≤10~; ~; ~a,b≤~10^6~
  • Subtask 3: ~T≤10^6~; ~a,b≤10^6~

Comments

Please read the guidelines before commenting.



  • -4
    tramanh1705  commented on March 31, 2021, 4:02 p.m.

    include<bits/stdc++.h>

    using namespace std; long long t , a ,b ; long long k[10000010],h[10000010]; int main() { cin>>t; k[0]=0; h[0]=0; for( long long i =1 ; i <= 1000000 ; i ++ ) { //long long tong = 0; long long j = 1; while(ij<=1000000) { k[ij]+=1; h[i*j]+=j; j++; } } for( long long i =1 ; i <= 1000000 ; i ++ ) { k[i]+=k[i-1]; h[i]+=h[i-1]; }

    for( long long i = 1 ; i <= t ; i ++ )
    {
        cin>>a>>b;
      cout<&lt;k[b]-k[a-1]<<" "<&lt;h[b]-h[a-1]<<"\n";
    }
    

    }