Итак, нужно найти число групп, в каждой из которых ни одно из чисел не делит все остальные.
Строим группы так:
(1) - 1
(2) - 2, 3, 5, 7, 11, 13... - все простые
(3) - 4, 6, 9, 10, 14, 15... - произведения двух простых
...
(k) - произведения (k - 1) простых
И так пока не кончатся все числа. Поскольку в каждой группе наименьшее число 2^(k - 1), то k - минимальное, для которого 2^(k - 1) > N
По построению явно во всех группах ни одно число не делится на другое. Осталось проверить, что получено минимальное число групп.
Это очевидно: числа 1, 2, 4, ..., 2^(k-1) должны быть в разных группах.
Решение:
n = int(input())
t = 1
k = 0
while t <= n:
t *= 2
k += 1
print(k)
8=3бит
32=5бит
64=6бит
128=7бит
256=8бит
524=9бит
1024=10бит
Var x, a, b, c, s: integer;
begin
write('Введите число: '); readln(x);
a := x div 100;
b := (x div 10) mod 10;
c := x mod 10;
s := a + b + c;
writeln('Число принадлежит ', a, ' сотне');
if(s mod 2 = 0) then writeln('Сумма цифр четная')
else writeln('Сумма цифр нечетная');
end.
a - сотни
b - десятки
с - единицы
Надеюсь я правильно тебя понял.
Не совсем понимаю вопроса.
div - это целое значения после деления одного числа на другое
mod - это остаток от деления одного числа на другое
т.е. например
a:=7 div 2;
a=3
b:=7 mod 2;
b=1
Примеры использования div и mod могут быть разные. Например их можно использовать для деления числа на отдельные цифры. Так остаток от деления на 10 (a mod 10) даст нам последнюю цифру. А если для трёхзначного числа зададим (a div 100) то найдём его первую цифру. Так же для нахождения средней цифры в трёхзначном числе можно написать как ((a mod 100)div 10) так и ((a div 10)mod 10).
Так же с помощью mod можно находить количество цифр в числе, и программа будет выглядеть так:
var i:byte; a,k:integer;
a:=4873; k:=0;
while a>0 do begin
k:=k+1;
a:=a mod 10;
end;
writeln(k);
end.
Знаем что такое двоичная система? Так вот с помощью div и mod можно написать программу перевода числа в двоичную систему, или просто подсчитать количество нулей и единиц в двоичной записи числа. Подсчёт единиц и нулей выглядит так:
var a,b,c:integer;
a:=34;b:=0;c:=0;
while a>0 do begin
if a mod 2=0 then b:=b+1 else c:=c+1;
a:=a mod 10;
end;
writeln('количество нулей=',b);
writeln('количество единиц=',c);
end.
Вообще много чего можно придумать. Узнать чётное ли число(mod), узнать количество чётных и нечётных цифр в числе(mod), узнать сколько раз число a делиться на число b(mod и div).
Так div и mod можно использовать где угодно и как угодно, и всё зависит от фантазии человека который пишет программу. Единственное что надо помнить, что mod и real выполняются для чисел integer, и если мы попытаемся исполнить операции для real (например 3,4 или 6,7) то наткнёмся на ошибку. Ну а так же, чисто из математики, мы не можем делить на ноль, следственно (a div 0) тоже операция не выполнима так же как и (a mod 0) .
Var a, k: real
BEGIN
uses crt; clrscr;
write ('Vvedite 1 chlen posledovatelnosti'); readln (a);
k:=0;
while a > 0 do
begin
if (a > 10) then k := a;
write ('Vvedite ocherednoy chlen posledovatelnosti'); readln (a);
end;
writeln (k);
END.