Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевод программы на pascal в C++ 
:(
    Опции темы
a1exnet
Дата 19.1.2014, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 19.1.2014

Репутация: нет
Всего: нет



Ребят, помогите перевести данную программу по информ. безопасности на язык C++

Код

function func(d:integer):boolean;
var i:integer;
begin
    result:=true;
    for i:=2 to d-1 do
       if d mod i = 0 then 
         begin 
            result:=false;
            break;
         end;
end;
 
function st(x,e1,n:integer):integer;
var i,k1:integer;
begin
k1:=x;
   for i:=2 to e1 do
      begin
         k1:=k1*x;
         k1:=k1 mod n;
      end;
   result:=k1;
end;
 
var i,p,q,f,n,cc,x,y,e1,d:integer;
 
begin
   write('введите p и q ');
   readln(p,q);
   n:=p*q;
   writeln('n = ',n);
   f:=(p-1)*(q-1);
   write('введите e ');
   readln(e1);
   d:=1;
   while(cc = 0) do
     begin
        d:=d+1;
        if (d*e1) mod f = 1 then 
          {if func(d div e1) then}
               begin cc:=1;end;
     end;
   writeln('e & d = ',e1,' ',d);
   write('введите x ');
   readln(x);
   y:=st(x,e1,n);
   writeln('зашифрованное = ',y);
   x:=st(y,d,n);
   write('расшифрованное = ',x);
 
end.

PM MAIL   Вверх
interv
Дата 30.1.2014, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 24.1.2012

Репутация: 4
Всего: 4



Код

public bool func(int d)
{
  for (int i=2; i<d; ++i)
     if (d%i == 0)  
       return false;
  return true;
}
 
public int st(int x, int e1, int n)
{
  int k = x;
  for i:=2 to e1 do
  {
    k *= x;
    k %= n;
  }
  return k;
}

int main(int argc, char *argv[])
{
  int p, q;
  std::cout << "введите p и q ";
  std::cin >> p >> q;
  int n = p * q;
  std::cout << "n = " << n;
  int f = (p-1) * (q-1);
  std::cout << 'введите e ';
  std::cin >> e1;
  int d = 1;
  do {
    ++d;
  } while ((d * e1)%f == 1 && func(d/e1));
  std::cout << "e & d = " << e1 << ' ' << d << \n << "введите x ";
  std::cin >> x;
  int y = st(x,e1,n);
  std::cout << "зашифрованное =  " << y;
  int x = st(y,d,n);
  std::cout << "расшифрованное = " << x;
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.