DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт з лабораторної роботи: Тестування чисел на простоту та побудова довгих простих чисел

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Не вказано

Інформація про роботу

Рік:
2016
Тип роботи:
Звіт
Предмет:
СП
Група:
БІ 21
Коротко про документ

Про що ця робота

Звіт присвячено реалізації тесту Рабіна-Міллера для перевірки чисел на простоту на мові C#. Наведено блок-схеми методів, лістинг програми та результати тестування.

У роботі розглядаються

  • Тестування чисел на простоту
  • Тест Рабіна-Міллера
  • Алгоритм Евкліда
  • Програмування на C#
  • Криптографічні алгоритми
  • Генерація простих чисел

Зміст і розділи

  1. Мета роботи
  2. Завдання
  3. Список ідентифікаторів
  4. Блок-схема програми
  5. Текст програми
  6. Результат роботи програми
Для кого:Студенти та викладачі технічних спеціальностей
Викладачі:Не вказано

Ключові поняття

тест Рабіна-Міллерапросте числоалгоритм ЕвклідаC#методблок-схемазміннаконстантапідпрограмафункція

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» / ЗВІТ ТЕСТУВАННЯ ЧИСЕЛ НА ПРОСТОТУ ТА ПОБУДОВА ДОВГИХ ПРОСТИХ ЧИСЕЛ. Варіант № 9 Мета роботи: вивчити основні програмні методи тестування чисел на простоту. Завдання: Скласти програму, яка б реалізовувала тест Рабіна-Міллера на перевірку простоти числа. Результати роботи подати у звіт. Список ідентифікаторів констант, змінних і функцій, використаних у головній програмі і підпрограмах та їх пояснення Ev — логічна змінна, яка отримує результат роботи алгоритму Евкліда; rez — логічна змінна, яка отримує результат роботи всієї програми; Evklid () – метод який реалізує алгоритм Евкліда; test () – метод проведення основного тесту; n - змінна, якій присвоюється значення перевіюваного числа; s - змінна, степінь числа 2. t - змінна, непарне число. а - змінна, якій присвоюється випадкове значення; t, x, y - додаткові змінні, що потрібні для роботи методів перевірки. Блок-схема програми: Головний метод Main: Метод Evklid: Метод test: + - Текст Програми: using System; namespace Lab_3_Crupt { class Program { static void Main() { int n = 0; int s = 0; int t = 0; int a = 0; bool Ev, rez; Program ob = new Program(); Console.WriteLine("Записуємо число для перевiрки у вигляді n-1=(2^s)*t:"); n = int.Parse(Console.ReadLine()); Console.WriteLine("Введіть степінь двійки s:"); s = int.Parse(Console.ReadLine()); Console.WriteLine("Введіть число t:"); t = int.Parse(Console.ReadLine()); Random r = new Random(); a = r.Next(1, n - 1); Ev = ob.Evklid(n, a); if (Ev) { rez = ob.test(n, a); if (rez==-1) { Console.WriteLine("Не вiдомо"); Console.ReadLine(); } else { Console.WriteLine("Число складне"); Console.ReadLine(); } } else { Console.WriteLine("Число складне"); Console.ReadLine(); } } public bool test(double x, double y) { Ch1 = (Math.Pow(a,t) –1) % n Ch2 = (Math.Pow(a,t) –(-1)) % n if(Ch1=0 or Ch2=0) { break; void Main(); } else { for(p=1;p<=Math.Pow(2,s-1);p++) { rez=Math.Pow(a,pt)%n } } } public bool Evklid(int x, int y) { int t; while (y != 0) { t = y; y = x % y; x = t; } if (x == 1) return true; else return false; } } } Результат роботи програми: /
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!