Tin học C++

Tiến huân

Học sinh mới
Thành viên
11 Tháng bảy 2019
5
1
1
20
Phú Yên
Lương văn chánh
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Vân - cô gái mà An thầm thương trộm nhớ là một cô gái rất đặc biệt. Cô ấy rất thích các con số mà nó có số lượng ước số là lẻ. Vân muốn biết trong đoạn [L, R] có bao nhiêu số đặc biệt như vậy (tính cả L và R). Nhưng cô ấy lại không thể tìm ra số lượng một cách nhanh chóng và vì vậy, Vân muốn An giải quyết bài toán này giúp mình.
Tất nhiên An không thể từ chối vì An rất thích Vân, nếu An không giúp Vân việc này thì cô ấy sẽ giận cậu ta. Hãy giúp An giải quyết bài toán này nhé.
Dữ liệu nhập: Dòng đầu tiên chứa một số nguyên T - số lượng trường hợp cần kiểm tra (1 ≤ T ≤ 105). T dòng tiếp theo, mỗi dòng chứa 2 số nguyên L, R (1 ≤ L ≤ R ≤ 1018) là đoạn cần kiểm tra.
Dữ liệu xuất: Gồm T dòng, mỗi dòng chứa một số nguyên duy nhất là kết quả của trường hợp tương ứng.
Ví dụ
input
2
1 3
6 10
output
1
1
Gợi ý: Trong một số bài giải, có thể sẽ gặp trường hợp sai số dẫn đến kết quả sai, có thể sử dụng kiểu long double và hàm sqrtl (căn bậc 2 long double) để tránh sai số này.
 
Last edited by a moderator:
  • Like
Reactions: dangtiendung1201

Tiến Phùng

Cựu Cố vấn Toán
Thành viên
27 Tháng mười 2018
3,742
3,705
561
Hà Nội
Trường Đại học Bách Khoa Hà Nội
Làm gì có trường hợp nào cần double?
int main()
{
int T;cin>>T;
int mangketqua = new int[T];
for(int i=0;i<T;i++)
{ int L,R; cin>> L>>R;
int ketqua=0;
for(int j=L;j<=R;j++)
{ int dem=0;
for(int k=1;k<=j/2;k++)
{ if(j%k==0) dem++;
}
if (dem%2!=0) ketqua++;
}
mangketqua i=ketqua;

}
for(int i=0;i<T;i++)
cout<<mangketqua i <<endl;
return 0;
}

2 chỗ mangketqua i đấy là đóng ngoặc vuông cho chỉ số i , do diễn đàn lỗi cứ gõ i ngoặc vuông là bị mất nên không gõ được
 
  • Like
Reactions: dangtiendung1201
Top Bottom