add new solutions
This commit is contained in:
parent
71189b61cf
commit
9c2c959a9b
10 changed files with 349 additions and 8 deletions
45
solutions/13/q1390/solution.go
Normal file
45
solutions/13/q1390/solution.go
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
package q1390
|
||||
|
||||
import "slices"
|
||||
|
||||
func sfd(n int) int {
|
||||
if n < 6 {
|
||||
return 0
|
||||
}
|
||||
|
||||
buf := [6]int{1, n}
|
||||
divisors := buf[:2]
|
||||
nn := n
|
||||
for i := 2; i*i <= nn; i++ {
|
||||
for nn%i == 0 {
|
||||
nn /= i
|
||||
|
||||
if !slices.Contains(divisors, i) {
|
||||
divisors = append(divisors, i)
|
||||
}
|
||||
if !slices.Contains(divisors, nn) {
|
||||
divisors = append(divisors, nn)
|
||||
}
|
||||
if !slices.Contains(divisors, n/nn) {
|
||||
divisors = append(divisors, n/nn)
|
||||
}
|
||||
if len(divisors) > 4 {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
}
|
||||
if len(divisors) == 4 {
|
||||
return divisors[0] + divisors[1] + divisors[2] + divisors[3]
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func sumFourDivisors(nums []int) int {
|
||||
sum := 0
|
||||
for _, n := range nums {
|
||||
sum += sfd(n)
|
||||
}
|
||||
return sum
|
||||
}
|
||||
|
||||
var _ = sumFourDivisors
|
||||
Loading…
Add table
Add a link
Reference in a new issue