Ниже на пяти языках программирования записан алгоритм. Получив на вход число N, этот алгоритм печатает число q. Укажите наименьшее из таких чисел N, при вводе которых алгоритм напечатает 17.
| Бейсик | Паскаль |
|---|---|
DIM N, q, i AS INTEGER INPUT N FOR i = 1 TO N - 1 IF N MOD i = 0 THEN q = i NEXT i PRINT q | var N, q, i: integer; begin read(N); for i := 1 to N - 1 do begin if N mod i = 0 then q := i end; write(q) end. |
| Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { int N, q, i; cin >> N; for (i = 1; i <= N - 1; i++) { if (N%i == 0) q = i; } cout « q « endl; } | алг нач цел N, q, i ввод N нц для i от 1 до N - 1 если mod(N, i) = 0 то q : = i все кц вывод q кон |
| Python | |
q = 0 n = int(input()) for i in range(1, n): if n % i == 0: q = i print(q)
| |
Фрагмент кода находит наибольший делитель N,не равный самому числу N. Для наименьшего N делитель равен 2, следовательно, N= 2 · 17 = 34.
Приведём другое решение на языке Python.
q = 0
for j in range(1, 10000):
n = j
for i in range(1, n):
if n % i == 0:
q = i
if q == 17:
print(j)
break

