Problem Statement
Initially she has a ball that contains an integer N. She can smash a ball that contains a composite number (see notes for definition) and break it into two balls. Each new ball will also contain an integer. If she smashes a ball that contains a composite number x and it breaks into two balls that contain y and z, it satisfies y &ge 2, z &ge 2 and yz = x. For example, if she smashes a ball that contains 12, it breaks into 2 and 6 or 3 and 4. Toastwoman can control the ball she smashes, but she can't control the numbers in the two new balls when there are multiple pairs of (y, z) that satisfy the above conditions. She can apply the described ball smash operation arbitrary number of times, but she can't smash a ball that contains a non-composite number.
If she can always make a ball that contains target, return "Yes" (quotes for clarity). Otherwise, return "No" (quotes for clarity).
Definition
- Class:
- CompositeSmash
- Method:
- thePossible
- Parameters:
- int, int
- Returns:
- String
- Method signature:
- String thePossible(int N, int target)
- (be sure your method is public)
Notes
- A positive integer x is called a composite number if it has at least one divisor other than 1 and x. For example, 4 and 6 are composite numbers, while 1 and 5 are not composite numbers.
Constraints
- N will be between 2 and 100,000, inclusive.
- target will be between 2 and 100,000, inclusive.
Examples
517
47
Returns: "Yes"
If she smashes 517, it breaks into 11 and 47.
8
4
Returns: "Yes"
If she smashes 8, it breaks into 2 and 4.
12
6
Returns: "No"
If she smashes 12 and it breaks into 3 and 4, she can't make 6.
5
8
Returns: "No"
100000
100000
Returns: "Yes"
She already has target.
5858
2
Returns: "Yes"
81461
2809
Returns: "No"
2
2
Returns: "Yes"
24517
24517
Returns: "Yes"
23868
23868
Returns: "Yes"
27981
27981
Returns: "Yes"
7581
7
Returns: "Yes"
77202
3
Returns: "Yes"
33649
23
Returns: "Yes"
64175
17
Returns: "Yes"
68408
503
Returns: "Yes"
45676
601
Returns: "Yes"
52247
4019
Returns: "Yes"
40648
5081
Returns: "Yes"
65719
65719
Returns: "Yes"
91733
91733
Returns: "Yes"
8
4
Returns: "Yes"
32768
4
Returns: "Yes"
65536
4
Returns: "Yes"
2187
9
Returns: "Yes"
3125
25
Returns: "Yes"
343
49
Returns: "Yes"
14641
121
Returns: "Yes"
2197
169
Returns: "Yes"
4913
289
Returns: "Yes"
6859
361
Returns: "Yes"
12167
529
Returns: "Yes"
24389
841
Returns: "Yes"
29791
961
Returns: "Yes"
50653
1369
Returns: "Yes"
68921
1681
Returns: "Yes"
79507
1849
Returns: "Yes"
24517
23868
Returns: "No"
27981
32111
Returns: "No"
25696
63304
Returns: "No"
39699
87448
Returns: "No"
92401
11170
Returns: "No"
74346
71633
Returns: "No"
92758
89633
Returns: "No"
70147
23873
Returns: "No"
26578
20233
Returns: "No"
79626
31543
Returns: "No"
996
6
Returns: "No"
69780
10
Returns: "No"
66256
82
Returns: "No"
10998
39
Returns: "No"
55760
656
Returns: "No"
58380
834
Returns: "No"
17578
8789
Returns: "No"
38940
1770
Returns: "No"
53524
26762
Returns: "No"
51162
25581
Returns: "No"
16
8
Returns: "No"
65536
8
Returns: "No"
32768
8
Returns: "No"
65536
256
Returns: "No"
65536
32768
Returns: "No"
6561
2187
Returns: "No"
78125
15625
Returns: "No"
16807
343
Returns: "No"
14641
1331
Returns: "No"
28561
2197
Returns: "No"
83521
4913
Returns: "No"
39601
199
Returns: "Yes"
100000
2
Returns: "Yes"
100000
50000
Returns: "No"
100000
99999
Returns: "No"
64
8
Returns: "No"
512
8
Returns: "No"
10000
100
Returns: "No"
243
9
Returns: "Yes"
169
13
Returns: "Yes"
16
4
Returns: "Yes"
64
4
Returns: "Yes"
4
2
Returns: "Yes"
59049
9
Returns: "Yes"
24
2
Returns: "Yes"
256
4
Returns: "Yes"
32
4
Returns: "Yes"
7
4
Returns: "No"
24983
6
Returns: "No"
25
5
Returns: "Yes"
1024
2
Returns: "Yes"
7
2
Returns: "No"
90090
4
Returns: "No"
11
3
Returns: "No"
221
5
Returns: "No"
25
3
Returns: "No"
7
5
Returns: "No"
3
2
Returns: "No"
101
3
Returns: "No"
81
9
Returns: "Yes"
27
9
Returns: "Yes"
14947
8911
Returns: "No"
32
16
Returns: "No"
64
16
Returns: "No"
11
7
Returns: "No"
13
2
Returns: "No"
100000
3
Returns: "No"
16807
49
Returns: "Yes"
30
5
Returns: "Yes"
10000
5
Returns: "Yes"
5
3
Returns: "No"
2
3
Returns: "No"
17
13
Returns: "No"
1024
4
Returns: "Yes"
4
3
Returns: "No"
66
6
Returns: "No"
7
3
Returns: "No"
50
97
Returns: "No"
37
2
Returns: "No"
512
9
Returns: "No"
150
25
Returns: "No"
101
50
Returns: "No"
65536
2
Returns: "Yes"
85085
11
Returns: "Yes"
72361
269
Returns: "Yes"
840
2
Returns: "Yes"
10000
10000
Returns: "Yes"
50
7
Returns: "No"
15
2
Returns: "No"
24
6
Returns: "No"
105
7
Returns: "Yes"
128
4
Returns: "Yes"
36
9
Returns: "No"
30
6
Returns: "No"
5
2
Returns: "No"
18
3
Returns: "Yes"
97
2
Returns: "No"
12
3
Returns: "Yes"
24
8
Returns: "No"
8
3
Returns: "No"
80
5
Returns: "Yes"
16
2
Returns: "Yes"
70345
7
Returns: "No"
7
7
Returns: "Yes"
625
25
Returns: "Yes"
32
8
Returns: "No"
9
3
Returns: "Yes"
7
6
Returns: "No"
4096
4
Returns: "Yes"
100
5
Returns: "Yes"
36
6
Returns: "No"
5
4
Returns: "No"
48
3
Returns: "Yes"
216
6
Returns: "No"
85386
2
Returns: "Yes"
11
9
Returns: "No"
6
81
Returns: "No"
519
17
Returns: "No"
128
2
Returns: "Yes"
96
2
Returns: "Yes"
42
2
Returns: "Yes"
14
7
Returns: "Yes"
24
4
Returns: "No"
17
6
Returns: "No"
81
27
Returns: "No"
36
2
Returns: "Yes"
99760
10
Returns: "No"
9
2
Returns: "No"
49
7
Returns: "Yes"
30
3
Returns: "Yes"
6054
1009
Returns: "Yes"
3402
3
Returns: "Yes"
17
5
Returns: "No"
10
7
Returns: "No"
90090
6
Returns: "No"
96
3
Returns: "Yes"
12
4
Returns: "No"
101
101
Returns: "Yes"
85085
3
Returns: "No"
2
4
Returns: "No"
60
5
Returns: "Yes"
30
2
Returns: "Yes"
60480
2
Returns: "Yes"
256
2
Returns: "Yes"
8
8
Returns: "Yes"
3
9
Returns: "No"