ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… чисСл Π½Π° простоту

Лабораторная Ρ€Π°Π±ΠΎΡ‚Π°ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: Using System.Collections.Generic; Using System.Collections.Generic; Using System.Collections.Generic; For (int i = 0; i < lenght; i++). Π Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: Int bits = thisVal. bitCount (); BigInteger a = newBigInteger (); If (lfsr.GetBits () == true). Array = newBitArray (lenght); For (int i = 0; i < k; i++). For (int i = 0; i < d; i++). ClassSelfDecimatedGenerator. Random rand… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… чисСл Π½Π° простоту (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования РСспублики Π‘Π΅Π»Π°Ρ€ΡƒΡΡŒ Π£Ρ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ образования

«Π‘рСстский государствСнный тСхничСский унивСрситСт»

ΠšΠ°Ρ„Π΅Π΄Ρ€Π° ИИВ

Лабораторная Ρ€Π°Π±ΠΎΡ‚Π° β„–4

По Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅ «ΠšΡ€ΠΈΠΏΡ‚ография»

По Ρ‚Π΅ΠΌΠ΅ «ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… чисСл Π½Π° ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Ρƒ»

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π° Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ΠΊΠ° III курса Π“Ρ€ΡƒΠΏΠΏΡ‹ ИИ-5 ΠžΠ»Π΅Ρ…Π½ΠΈΠΊ Π•.Π’.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ» Π₯Π°Ρ†ΠΊΠ΅Π²ΠΈΡ‡ М.Π’.

БрСст 2010

Π’Π΅ΠΌΠ°: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… чисСл Π½Π° ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Ρƒ. ΠœΠ΅Ρ‚ΠΎΠ΄ Π€Π΅Ρ€ΠΌΠ°.

ЦСль: Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Ρƒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… чисСл.

Π₯ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρ‹:

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Program.cs

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

namespace Tania_KMZILab3

{

classProgram

{

staticvoid Main ()

{

BigInteger bigInteger;

do

{

SelfDecimatedGenerator generator = newSelfDecimatedGenerator (98); // Π² ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Π΅ Π·Π°Π΄Π°Ρ‘Ρ‚ Π΄Π»ΠΈΠ½Ρƒ числав Π±ΠΈΡ‚Π°Ρ…

bigInteger = newBigInteger (generator.Generate (), 2); // создаём боооольшоС число ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сроку Π²Ρ‚ΠΎΡ€ΠΎΠΉ 2-это Π·Π½Π°Ρ‡ΠΈΡ‚ двоичная систСма

}

while (!Ferma.FermatLittleTest (50, bigInteger));

Console.WriteLine (bigInteger); // Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ числа

Console.WriteLine (Ferma.FermatLittleTest (50, bigInteger));

Console.ReadKey (); // ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ наТатия клавиши с ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ

}

}

}

Ferma.cs

using System;

namespace Tania_KMZILab3

{

staticclassFerma

{

staticpublicbool FermatLittleTest (int confidence, BigInteger thisVal)

{

if ((thisVal % 2) == 0)

returnfalse;

int bits = thisVal. bitCount ();

BigInteger a = newBigInteger ();

Random rand = newRandom ();

for (int round = 0; round < confidence; round++)

{

SelfDecimatedGenerator generator = newSelfDecimatedGenerator (40); // Π² ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Π΅ Π·Π°Π΄Π°Ρ‘Ρ‚ Π΄Π»ΠΈΠ½Ρƒ числав Π±ΠΈΡ‚Π°Ρ…

a = newBigInteger (generator.Generate (), 2);

BigInteger expResult = a. modPow (thisVal — 1, thisVal);

if (expResult ≠ 1)

{

returnfalse;

}

}

returntrue;

}

}

}

SelfDecimatedGenerator.cs

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

using System. Collections;

namespace Tania_KMZILab3

{

classSelfDecimatedGenerator

{

privateLFSR lfsr;

privateint k = 10;

privateint d = 23;

public SelfDecimatedGenerator (int length

{

lfsr = newLFSR (length);

lfsr.UseRegister ();

}

publicstring Generate ()

{

if (lfsr.Quantity ())

{

for (int i = 0; i < k; i++)

lfsr.UseRegister ();

}

else

{

for (int i = 0; i < d; i++)

lfsr.UseRegister ();

}

string bitString = «» ;

for (int i = 0; i < lfsr. GetBits ().Length; i++)

{

if (lfsr.GetBits ()[i] == true)

bitString += «1» ;

else

bitString += «0» ;

}

return bitString;

}

}

}

LFSR.cs

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

using System. Collections;

namespace Tania_KMZILab3

{

classLFSR

{

privateBitArray Array;

privatebool outBit;

publicBitArray GetBits ()

{

return Array;

}

public LFSR (int lenght)

{

Array = newBitArray (lenght);

Random rnd = newRandom ();

for (int i = 0; i < lenght; i++)

{

if ((rnd.Next (0, 1000) % 2) == 0)

{

Array[i] = true;

}

else

{

Array[i] = false;

}

}

}

publicvoid UseRegister ()

{

bool feedBack;

feedBack = Array. Get (15) ^ Array. Get (10) ^ Array. Get (15) ^ Array. Get (12);

outBit = Array. Get (Array.Length — 1);

for (int i = 0; i < (Array.Length — 1); i++)

{

Array.Set (Array.Length — i — 1, Array. Get (Array.Length — i — 2));

}

Array.Set (0, feedBack);

}

publicbool Quantity ()

{

if (outBit == false)

{

returnfalse;

}

elsereturntrue;

}

}

}

Π Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

True

True

True

Π’Ρ‹Π²ΠΎΠ΄: Π˜Π·ΡƒΡ‡ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… простых чисСл, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ способы ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Ρƒ.

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