class_name EulerCalculator extends Control func _on_test_button_down() -> void: var answer:int = calc_biggest_palindromic_number(2) show_result(answer) func _on_calculate_button_down() -> void: var answer:int = calc_biggest_palindromic_number(3) show_result(answer) func show_result(answer:int) -> void: $VBoxContainer/Label.text = str(answer) func calc_biggest_palindromic_number(digits:int) -> int: var highest_palindrome:int = -1 var min:int=pow(10,digits-1) var max:int=pow(10,digits) for a in range(min, max): for b in range(min, max): var p:int = a*b var arr:Array = [0] for k in range(1, digits*2+1): var unit:int = p % (pow(10,k) as int) unit /= (pow(10,k-1) as int) arr.append(unit) arr.remove_at(0) if arr.size() != digits*2: continue var is_palindrome:bool = true for k in range(0,digits): is_palindrome = is_palindrome and arr[k] == arr[digits*2-k-1] if is_palindrome and highest_palindrome