Consider all integer combinations of ab for 2 <= a <= 5 and 2 <= b <= 5: 22=4, 23=8, 24=16, 25=32 32=9, 33=27, 34=81, 35=243 42=16, 43=64, 44=256, 45=1024 52=25, 53=125, 54=625, 55=3125 If they are then placed in numerical order, with any repeats removed, we get the fol
()
| 1 | def main(): |
| 2 | """ |
| 3 | Consider all integer combinations of ab for 2 <= a <= 5 and 2 <= b <= 5: |
| 4 | |
| 5 | 22=4, 23=8, 24=16, 25=32 |
| 6 | 32=9, 33=27, 34=81, 35=243 |
| 7 | 42=16, 43=64, 44=256, 45=1024 |
| 8 | 52=25, 53=125, 54=625, 55=3125 |
| 9 | If they are then placed in numerical order, with any repeats removed, |
| 10 | we get the following sequence of 15 distinct terms: |
| 11 | |
| 12 | 4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125 |
| 13 | |
| 14 | How many distinct terms are in the sequence generated by ab |
| 15 | for 2 <= a <= 100 and 2 <= b <= 100? |
| 16 | """ |
| 17 | |
| 18 | collectPowers = set() |
| 19 | |
| 20 | currentPow = 0 |
| 21 | |
| 22 | N = 101 # maximum limit |
| 23 | |
| 24 | for a in range(2, N): |
| 25 | for b in range(2, N): |
| 26 | currentPow = a**b # calculates the current power |
| 27 | collectPowers.add(currentPow) # adds the result to the set |
| 28 | |
| 29 | print("Number of terms ", len(collectPowers)) |
| 30 | |
| 31 | |
| 32 | if __name__ == '__main__': |