Problem Statement
An integer x is called a proper divisor of an integer y if x is a divisor of y and 1 <= x < y.
Let us denote as s(a) the sum of all proper divisors of a. An integer a is called almost perfect by k if |a-s(a)| <= k.
You are given
Definition
- Class:
- AlmostPerfectNumber
- Method:
- count
- Parameters:
- int, int, int
- Returns:
- int
- Method signature:
- int count(int left, int right, int k)
- (be sure your method is public)
Constraints
- left will be between 2 and 1000, inclusive.
- right will be between left and 1000, inclusive.
- k will be between 0 and 1000, inclusive.
Examples
2
10
1
Returns: 4
The following numbers between 2 and 10 are almost perfect by 1: 2 (s(2) = 1), 4 (s(4) = 3), 6 (s(6) = 6) and 8 (s(8) = 7).
5
5
5
Returns: 1
11
20
50
Returns: 10
2
1000
1
Returns: 12
2
1000
2
Returns: 19
2
1000
3
Returns: 20
2
1000
4
Returns: 29
2
1000
5
Returns: 30
2
1000
6
Returns: 35
2
1000
7
Returns: 37
2
1000
8
Returns: 43
2
1000
9
Returns: 43
2
1000
10
Returns: 49
2
1000
100
Returns: 310
2
1000
200
Returns: 489
2
1000
300
Returns: 621
2
1000
400
Returns: 725
2
1000
500
Returns: 808
2
1000
600
Returns: 869
2
1000
700
Returns: 916
2
1000
800
Returns: 950
2
1000
900
Returns: 979
2
1000
1000
Returns: 996
2
33
861
Returns: 32
204
421
672
Returns: 218
320
430
372
Returns: 101
427
474
475
Returns: 48
72
853
59
Returns: 140
295
942
368
Returns: 381
775
849
698
Returns: 57
845
957
306
Returns: 32
164
439
466
Returns: 275
248
869
279
Returns: 318
483
560
875
Returns: 78
289
839
977
Returns: 550
494
944
828
Returns: 427
22
160
143
Returns: 136
502
512
593
Returns: 11
11
777
651
Returns: 739
771
933
558
Returns: 100
207
747
593
Returns: 501
956
984
999
Returns: 28
245
756
295
Returns: 301
87
792
5
Returns: 11
882
942
6
Returns: 1
954
986
3
Returns: 0
9
708
10
Returns: 40
775
944
2
Returns: 0
145
927
8
Returns: 13
590
945
7
Returns: 3
289
355
6
Returns: 1
281
912
1
Returns: 2
274
669
10
Returns: 8
12
12
1
Returns: 0
2
1000
20
Returns: 116
4
4
1
Returns: 1
2
2
1
Returns: 1
12
12
3
Returns: 0
2
1000
0
Returns: 3
2
1000
50
Returns: 187
100
100
1
Returns: 0
12
12
0
Returns: 0
24
25
3
Returns: 0
2
800
50
Returns: 170
4
4
2
Returns: 1
2
1000
30
Returns: 144
8
10
3
Returns: 2
8
8
2
Returns: 1
23
25
1
Returns: 0
20
20
1
Returns: 0
10
10
3
Returns: 1
9
9
4
Returns: 0
100
100
25
Returns: 1
6
6
1
Returns: 1
8
8
3
Returns: 1
20
20
20
Returns: 1
3
3
1
Returns: 0
12
12
4
Returns: 1
11
12
3
Returns: 0
2
9
3
Returns: 5
6
6
0
Returns: 1
8
8
4
Returns: 1
24
24
2
Returns: 0
24
28
2
Returns: 1
28
28
0
Returns: 1
24
24
0
Returns: 0
5
5
1
Returns: 0
2
1000
321
Returns: 641