Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет ″Львівська політехніка″
Кафедра захисту інформації
Звіт
про виконання лабораторної роботи №3
з курсу “ АЛГОРИТМІЧНІ ОСНОВИ КРИПТОЛОГІЇ ”
на тему: “Тестування чисел на простоту та побудова довгих простих чисел. Факторизація складених чисел”
Виконав: ст. гр. ІБ-44
Перевірив:
Лагун А.Е.
Львів 2009
Мета роботи: засвоїти основні програмні методи тестування чисел на простоту, а також прості алгоритми факторизації складного числа.
Завдання :
а) Генерація простих чисел;
б) Розклад довільного числа на прості множники.
Блок -схема головної програми
SHAPE \* MERGEFORMAT початок
Vsi prosti chusla, cho ne perevuch. 256:
s=s+1
s
i=2…256;i++
q=2…i;q++
(i%q)=0
ні
так
i!=q
так
ні
i
vvedit dovilne chuslo p=,p
“p=”
p%2=0
1,2
так
ні
SHAPE \* MERGEFORMAT 2,1
“*2”
p=p/2
j <=p
так
ні
p%j==0
так
ні
j
p=p/j
j=j+2
кінець
Список ідентифікаторів констант, змінних і функцій, використаних у
головній програмі і підпрограмах , та їх пояснення
i, j, q– цілі змінні, що використовуються в циклi.
p – ціла змінна, що містить значення, що розкладають на прості множники.
s – ціла змінна, що містить суму значень простих чисел на певному інтервалі.
Остаточна версія програми
#include <stdlib.h>
#include <stdio.h>
int main()
{
int i, q,p,j=3,s=0;
printf ("Vsi prosti chusla, cho ne perevuch. 256:\n");
for(i=2;i<=256;i++)
{for(q=2;q<=i;q++)
{ if((i%q)==0)
if(i!=q)
{
break;
}
else
{
printf("%5d", i);
s++;
}
}
}
printf("\n n=%d ", s);
printf("\nvvedit dovilne chuslo p=");
scanf("%d",&p);
printf("%d=",p);
while(p%2==0)
{
printf("%d*",2);
p=p/2;
}
while(j <=p)
{
if(p%j==0)
{
printf("%d*",j);
p=p/j;
}
else
j=j+2;
}
system("PAUSE");
return 0;
}
Результат роботи програми
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!