Курсовая

Курсовая на тему Планирование работ в вычислительных системах по критерию минимального суммарного времени выполнения

Работа добавлена на сайт bukvasha.net: 2015-06-30

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 27.12.2024


БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра информатики

Пояснительная записка к курсовому проекту

по курсу

«Архитектура вычислительных систем»

на тему

«Планирование работ в вычислительных системах по критерию минимального суммарного времени выполнения работ»

МИНСК, 2001

Постановка задачи

Факторизовать целое число N с помощью ро-метода Полларда.

Исходные данные:

Целое число N.

Краткое описание ро-метода Полларда

Ро-метод Полларда для факторизации заключается в следующем:

  1. Составляется последовательность {x}, xi+1=f(xi), f(x)=x2+1

  2. Вычисляются разности yi= x2i- xi

  3. Вычисляется наибольший общий делитель чисел yi и N. Если он больше 1, полученный НОД (yi , N) является делителем числа N. Если нет – продолжаем выполнение алгоритма сначала.

Алгоритм работы программы

- Ввод числа N.

- Пока N не равно 1:

  1. Вычисление xi

  2. Вычисление x2i

  1. Нахождение разности yi= x2i- xi

  1. Вычисление НОД (yi , N)

  2. Проверка НОД (yi , N) на равенство 1. Если это условие выполняется, то НОД – один из делителей числа N. Делим N на НОД и переходим к началу цикла.

Выход из цикла – равенство числа N единице.

Листинг программы

#include "stdio.h"

#include "conio.h"

#include "iostream.h"

unsigned long NOD(unsigned long a, unsigned long b)

{

while ((a > 0) && (b > 0))

if (a > b) a %= b;

else b %= a;

if (a == 0) return b;

return a;

}

void main()

{

unsigned long N, y, x, x1, i, j, d;

clrscr();

printf("Введите N : ");

scanf("%ld", &N);

i = 1;

x = 0;

do {

x = (x*x + 1) % N;

x1 = x;

for (j = 0; j < i*2-i; j++)

x1 = (x1*x1 + 1) % N;

i++;

y = x1 - x;

d = NOD(y, N);

if (d != 1)

{

cout<<"Делитель : "<<d<<" ";

cout<<"Кол-во шагов : "<<i-1<<endl;

N/=d;

i = 1;

x = 0;

}

}

while (N != 1);

getch();

}


1. Реферат Курорт Сочи - Мацеста
2. Реферат Госрегулирование предпринимательской деятельности
3. Реферат на тему Комплексна характеристика гломерулонефриту у війскослужбовців з оцінкою його розповсюдженості ефективності
4. Реферат на тему Commentary On The Road Not Taken Essay
5. Реферат Шелли, Перси Биши
6. Реферат Економіка бджільництва
7. Реферат Структура строительной организации
8. Реферат на тему Human Vs Cetacean Divers Essay Research Paper
9. Доклад на тему Индульгенции в истории греческой церкви
10. Биография на тему Николай Пиксанов