В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
vztositgicgc
vztositgicgc
30.05.2022 12:34 •  Информатика

Пользователь использует компьютерную систему, в которой по введенному паролю вычисляется и хранится хеш-значение. хэш-значение пароля вычисляется функцией gethash (см. листинг).

политика безопасности системы требует, чтобы пароль содержал не более шести символов и состоял только из букв латинского алфавита в верхнем регистре в кодировке ascii.

/* входные параметры:

pwd – строка пароля

hash - переменная, в которой будет содержаться хеш

возвращаемое значение:

false – пароль не соотвествует правилам системы;

true - пароль соотвествует правилам системы;

int hash – хеш пароля (целое число)

*/

bool gethash( char const *pwd, int *hash ) {

// длина пароля

int n = strlen(pwd);

// проверка пароля на длину

if(n > 6)

return false;

// проверка пароля на содержание только букв верхнего регистра

for(int i = 0; i < n; i++)

if( pwd[i] < 'a' || pwd[i] > 'z')

return false;

//вычисление хеша

*hash = 0;

for(int i = 0; i < n; i++)

*hash += (pwd[i] - 'a' + 1);

return true;

}

у какого пароля хеш-значение будет меньше 65?

Показать ответ
Ответ:
adamannik
adamannik
15.10.2021 07:28
У вас есть число 137
если вам надо перевести его в какую-нибудь систему счисления, то нужно делить это число на номер системы, так если нужно перевести число 137 в ДВОичную ,то делим на 2 до тех пор, пока остатотк от деления не равен 1.(если в ТРОичную то на 3 и т.д.).
начнём:
137 / 2 = 68 выписываем остаток (1) 
68   / 2 = 34 выписываем остаток (0)
34   / 2 = 17 выписываем остаток (0)
17   / 2 = 8   выписываем остаток (1)
8     / 2 = 4   выписываем остаток (0)
4     / 2 = 2   выписываем остаток (0)
2     / 2 = 1  <==   на этой единице заканчиваем деление, далее снизу вверх выписываем получившееся число : 001001;
ответ: 001001
0,0(0 оценок)
Ответ:
bakulya2005ma
bakulya2005ma
20.06.2021 14:30
Поиск простых делителей числа:

var i,j,n:longint;
    f:boolean;
begin
 writeln('Введите число');
 readln(n);
  if n<2 then writeln('Простых делителей нет')
  else
   begin
    write('Число ',n,' ','= 1');
    for i:=2 to n do
     if n mod i=0 then
      begin
       f:=true;
       j:=2;
       while f and(j<=round(sqrt(i/2)))do
        begin
         if i mod j=0 then f:=false
         else j:=j+1;
        end;
      if f then write('*',i);
     end;
   end;
end.

Тестовое решение:

Введите число
2345
Число 2345 = 1*5*7*35*67
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота