Online Compiler Nasm

extern io_get_dec, io_print_dec section .bss a resd 1 section .data b dd 1 section .text global main main: call io_get_dec mov [a], eax mov ecx, 1 .beg: lea edi, [ecx * ecx] cmp edi, [a] jge .done xor edx, edx mov eax, [a] div ecx cmp edx, 0 jne .skip mov [b], ecx cmp eax, ecx cmovge [b], eax .skip: inc ecx jmp .beg .done: mov eax, [b] call io_print_dec xor eax, eax ret
1) Этот код находит наибольший собственный делитель введённого числа, который не является полным квадратом (или сам квадрат, если нет других делителей). Он использует перебор делителей до квадратного корня числа.

2) Подсказки:
- Обрати внимание, что цикл проверяет делители только до тех пор, пока квадрат делителя меньше введённого числа.
- Переменная `b` хранит текущий найденный наибольший делитель, но обновляется только когда найден делитель без остатка.