Помощь в написании студенческих работ
Антистрессовый сервис

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

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

While ((a > 0) && (b > 0)). Вычисление x2i. Целое число N. Вычисление xi. Include «iostream.h». Ввод числа N. X1 = (x1*x1 + 1) % N; If (a == 0) return b; Scanf («%ld», &N); Include «stdio.h». Include «conio.h». X = (x*x + 1) % N; If (a > b) a %= b; По курсу. Минск, 2001. While (N ≠ 1); На тему. D = NOD (y, N); Y = x1 — x; Void main (). If (d ≠ 1). Else b %= a; Clrscr (); Return a; Getch (); X1… Читать ещё >

Планирование работ в вычислительных системах по критерию минимального суммарного времени выполнения работ (реферат, курсовая, диплом, контрольная)

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

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

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

по курсу

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

на тему

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

МИНСК, 2001

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4. Проверка НОД (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<<" Делитель: «<<» «;

cout<<" Кол-во шагов: «<

N/=d;

i = 1;

x = 0;

}

}

while (N ≠ 1);

getch ();

}

Показать весь текст
Заполнить форму текущей работой