41 lines
785 B
Go
41 lines
785 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
func main() {
|
|
var dividerr int64 = 20201227
|
|
// var cardPKey int64 = 5764801
|
|
// var doorPKey int64 = 17807724
|
|
|
|
var cardPKey int64 = 16915772
|
|
var doorPKey int64 = 18447943
|
|
|
|
var cardValue int64 = 1
|
|
var cardLoopSize int64 = 0
|
|
|
|
for cardValue != cardPKey {
|
|
cardValue *= 7 // Subject number
|
|
cardValue = cardValue % dividerr
|
|
cardLoopSize++
|
|
}
|
|
|
|
var doorValue int64 = 1
|
|
var doorLoopSize int64 = 0
|
|
|
|
for doorValue != doorPKey {
|
|
doorValue *= 7 // Subject number
|
|
doorValue = doorValue % dividerr
|
|
doorLoopSize++
|
|
}
|
|
|
|
var part1 int64 = 1
|
|
var i int64 = 0
|
|
|
|
for i = 0; i < cardLoopSize; i++ {
|
|
part1 *= doorPKey
|
|
part1 = part1 % dividerr
|
|
}
|
|
|
|
fmt.Printf("Part 1: %d %d %d\n", cardLoopSize, doorLoopSize, part1)
|
|
}
|