top of page
Search

# LCM of an Array with Modulo

### Problem Description:

Find LCM of N numbers, with modulo M, where for this problem statement M is 1e9 + 7.

### Sample Input:

`A: [13, 412, 56, 70, 333]`

### Sample Output:

`124848360`

### Solution Approach:

One thing to notice is that you can not take modulo in between the LCM operation.

For example:

`Case 1: When you take modulo in between the LCM operation. `
```
LCM(12, 3, 8) % 10
LCM( LCM(12,3) % 10, 8 ) % 10
LCM( 12 % 10, 8) % 10
LCM( 2, 8 ) % 10
8```

`Case 2:`
```LCM(12,3,8) % 10
24 % 10
4```

So 4 is the correct answer, that's why we can not approach this problem as suggested by Case 1.

So, to solve it elegantly, we can use prime factorization, for example,

```A: [12, 3, 8]

12: 2² * 3¹
3: 3¹
8: 2³

Take max power of each prime number, then multiply it, you will get 2³ * 3¹ = 24

So while multiplying those numbers you can use modulo now.

```

### Sample IO Explanation:

```A: [13, 412, 56, 70, 333]
13: 13¹
412: 2² x 103¹
56: 2³ x 7¹
70: 2¹ x 5¹ x 7¹
333: 3² x 37¹```
`So, LCM = (2³ x 3² x 5¹ x 7¹ x 13¹ x 37¹ x 103¹) % (1e9 + 7) = 124848360`