Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
З В І Т
до лабораторної роботи №3
з курсу: «Алгоритмічні основи криптології»
на тему: «Тестування чисел на простоту та побудова довгих простих чисел»
Варіант № 9
Львів – 2013р.
Мета роботи – вивчити основні програмні методи тестування чисел на простоту.
Завдання
Варіант
Алгоритм
Доповнення
9
Критерій Вільсона + Решето Ератосфена
Блок-схеми алгоритму програми
Main()
Vilson()
Resheto()
Список ідентифікаторів констант, змінних, функцій,
використаних у блок-схемі алгоритму і програмі,
та їх пояснення
a – одновимірний масив типу integer;
i, j, x, q - змінні типу integer, що використовуються для обчислення даними методами;
Vilson() - метод, що реалізує теорему Вільсона;
Resheto() - метод, який генерує прості числа до числа n методом Решета Ератосфена.
Текст програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Resheto_Eratosfena_Teorema_Vilsona
{
class Program
{
static void Main(string[] args)
{
Teorema_Vilsona t = new Teorema_Vilsona();
t.Vilson();
Resheto_Eratosfena tt = new Resheto_Eratosfena();
tt.Resheto();
Console.ReadLine();
}
}
class Teorema_Vilsona
{
int i, x, q;
UInt64 p = 1;
public void Vilson()
{
p = 1;
Console.Write("X=");
x = Convert.ToInt16(Console.ReadLine());
for (i = 2; i < x; i++)
p *= Convert.ToUInt64(i);
// Console.WriteLine("p={0}", p);
if ((p % ((UInt64)x)) != 0)
{
Console.WriteLine("Число {0} просте", x);
}
else
{
Console.WriteLine("Число {0} складне", x);
}
Console.WriteLine("\n\t\tПеревiрити iнше число?\n\t\t1-так\t\t2-нi");
q = Convert.ToInt16(Console.ReadLine());
if (q == 1)
{
Vilson();
}
}
}
class Resheto_Eratosfena
{
int n, i, j,k;
int[] a;
public void Resheto()
{
Console.Write("Введiть число n=");
n = Convert.ToInt16(Console.ReadLine());
a = new int[n];
for (i = 2; i <= n; a[i - 2] = i, i++) ;
for (i = 0; i <= n - 2; i++)
{
if (a[i] != -1)
{
for (j = i+1; j <= n - 2; j++)
{
if (a[j] % a[i] == 0)
{ a[j] = -1; }
}
}
}
Console.WriteLine();
j = 1;
k = 1;
for (i = 0; i <= n - 2; i++)
{
if (j % (k * 10) == 0) { Console.WriteLine(); k++; }
if (a[i] != -1) { Console.Write(" {0}", a[i]); j++; }
}
}
}
}
Результати роботи програми
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!