Problem 52

Run Settings
LanguageGo
Language Version
Run Command
package main import ( "fmt" "strings" "sort" ) func sameDigits(a uint64, b uint64) bool { // просто печатаем число в строку и возвращает эту строку // %v это value aConverted := fmt.Sprintf("%v", a) bConverted := fmt.Sprintf("%v", b) // разделяем строку на куски (символы) aSplitted := strings.Split(aConverted, "") bSplitted := strings.Split(bConverted, "") // сортируем sort.Strings(aSplitted) sort.Strings(bSplitted) // соединяем в целую строку обратно aJoined := strings.Join(aSplitted, "") bJoined := strings.Join(bSplitted, "") // тупо сравниваем результат return aJoined == bJoined } func main() { limit := ^uint64(0) // ^ это битовая операция отрицания. ^00000000 == 11111111, т.е. макс. число. limit = 142858 // хотя лучше лимит поменьше поставить)) for number := uint64(1); number < limit; number += 1 { result := fmt.Sprintf("%v", number) for multiplier := uint64(6); multiplier >= 2; multiplier -= 1 { multipled := number * multiplier if !sameDigits(number, multipled) { break } result += fmt.Sprintf(" %v", multipled) if multiplier == 2 { fmt.Println(result) } } } }
Editor Settings
Theme
Key bindings
Full width
Lines