> For the complete documentation index, see [llms.txt](https://opu.gitbook.io/oop/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://opu.gitbook.io/oop/2019-2020-archive/arkhiv-1/labs/lab8/zadanie-na-laboratornuyu-rabotu.md).

# Задание на лабораторную работу

## Задание на лабораторную работу

### 1. Задачи сайта codingbat.com

#### 1. Зайдите на сайт <https://codingbat.com/java> и зарегистрируйтесь

![](https://1377473627-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LnhxGhlv6e_zwoZYywB%2F-LsNBEAVzzgVce33MkzM%2F-LsNBpDIbueVvOOxmJok%2Fassets_-LLMA-cFvx_keJaoUgkS_-LR1VCr6dLP7pXyeNDqL_-LR1W0vxju5Wyc1-JEnA_image.png?alt=media\&token=a6289e50-e8e2-4b24-8771-6c7297956bb4)

#### 2. Вам необходимо выполнить все задания из раздела [Java/Functional-1](https://codingbat.com/java/Functional-1) и [Java/Functional-2](https://codingbat.com/java/Functional-2) с использованием механизма потоков (Stream API).

![](https://1377473627-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LnhxGhlv6e_zwoZYywB%2F-LsNBEAVzzgVce33MkzM%2F-LsNBuck6yeUOAk70prD%2Fassets_-LLMA-cFvx_keJaoUgkS_-LR1VCr6dLP7pXyeNDqL_-LR1X5yXVDAoZmyUDlqU_image.png?alt=media\&token=72c84df1-d00c-4914-ad58-d72ba25e158f)

#### 3. Для решения каждой задачи необходимо вписать код метода в окно ввода. Задание и примеры находятся в верхней части страницы, после чего идет поле ввода, куда необходимо ввести код, который приведет к желаемой работе метода.

![](https://1377473627-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LnhxGhlv6e_zwoZYywB%2F-LsNBEAVzzgVce33MkzM%2F-LsNC-kGDBLVjLH3PISh%2Fassets_-LLMA-cFvx_keJaoUgkS_-LR1VCr6dLP7pXyeNDqL_-LR1XMNpVLbgCOVYgLen_image.png?alt=media\&token=e0878b14-1b90-4607-81aa-4de92b062a1b)

#### 4. После ввода кода, необходимо нажать кнопку "Go", после чего ваш код пройдет рад тестов. Если код неправильный, то некоторые тесты будут провалены

![](https://1377473627-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LnhxGhlv6e_zwoZYywB%2F-LsNBEAVzzgVce33MkzM%2F-LsNC365ydDTgzTFVfRD%2Fassets_-LLMA-cFvx_keJaoUgkS_-LR1VCr6dLP7pXyeNDqL_-LR1XpVmbYomWjZyWFcU_image.png?alt=media\&token=86a8a614-7989-49e8-b1a2-3e16ee12462a)

#### 5. Задание считается выполненным, если будут пройдены все тесты

![](https://1377473627-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LnhxGhlv6e_zwoZYywB%2F-LsNBEAVzzgVce33MkzM%2F-LsNC8u51C004WzzVM1s%2Fassets_-LLMA-cFvx_keJaoUgkS_-LR1VCr6dLP7pXyeNDqL_-LR1Xy1mnhuYLnJ-Lfz7_image.png?alt=media\&token=535c359a-55bb-4f8d-baed-8963871ccc59)

#### 6. Протокол лабораторной работы должен содержать код выполненных заданий. При сдаче лабораторной работы необходимо зайти под своим аккаунтом и показать, что все задания были решены верно.

## 2. Обработка литературного текста

Найдите 500 самых длинных слов в романе "Война и мир", используя параллельный поток данных (выведите 500 самый длинных слов в консоль в порядке убывания длины слова, слова одинаковой длины должны быть выведены в алфавитном порядке).

{% hint style="info" %}
Для успешного выполнения работы: скачайте роман в текстовом формате, загуглите, как получить Stream из файла, после чего загуглите, как разбить строку на отдельные слова.
{% endhint %}

## 3. Поиск простых чисел

Найдите 500 простых чисел, состоящих из 50 цифр, используя параллельный поток данных типа `BigInteger` и метод `BigInteger.isProbablePrime()` для проверки числа на простоту.&#x20;

{% hint style="warning" %}
Для генерации чисел **НЕ используйте** метод `BigInteger.probablePrime()`.
{% endhint %}

Выведите 500 найденных простых чисел в консоль в порядке возрастания значения числа.

{% hint style="info" %}
Для получения массива чисел используйте метод `Stream.generate().`
{% endhint %}

## 4. Дополнительное задание

Модифицируйте задачу 3 следующим образом: найдите способ измерить длительность работы метода, после чего выполните задание 3 с использованием обычного потока и с помощью параллельного потока и сравните время выполнения задачи в обоих случаях.
