ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅, ΠΎΡ‡Π΅Π½ΡŒ быстро...
Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ вмСстС Π΄ΠΎ ΠΏΠΎΠ±Π΅Π΄Ρ‹

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚ Π² Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… систСмах ΠΏΠΎ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ минимального суммарного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Ρ€Π°Π±ΠΎΡ‚

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

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 ();

}

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ