From 9eafbd2a8f2b4f6f67e151a23f6cdb58da9003ea Mon Sep 17 00:00:00 2001 From: ehermakov Date: Mon, 7 Aug 2023 20:27:23 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B6=D0=B0?= =?UTF-8?q?=D1=8E=20=D0=94=D0=97=20=D0=BF=D0=BE=20=D0=BD=D0=B0=D1=85=D0=BE?= =?UTF-8?q?=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8=D1=8E=20=D0=BF=D1=80=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8B=D1=85=20=D1=87=D0=B8=D1=81=D0=B5=D0=BB=20=D0=B4?= =?UTF-8?q?=D0=BE=20N?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.idea/.gitignore | 0 .../.idea/07082023 Найти простые числа до n.iml | 8 ++ .../.idea/inspectionProfiles/profiles_settings.xml | 6 ++ .../.idea/misc.xml | 4 + .../.idea/modules.xml | 8 ++ .../.idea/vcs.xml | 6 ++ .../.idea/workspace.xml | 73 +++++++++++++++++++ .../07082023 Найти простые числа до n/main.py | 70 ++++++++++++++++++ 8 files changed, 175 insertions(+) create mode 100644 HNS/Excercises/07082023 Найти простые числа до n/.idea/.gitignore create mode 100644 HNS/Excercises/07082023 Найти простые числа до n/.idea/07082023 Найти простые числа до n.iml create mode 100644 HNS/Excercises/07082023 Найти простые числа до n/.idea/inspectionProfiles/profiles_settings.xml create mode 100644 HNS/Excercises/07082023 Найти простые числа до n/.idea/misc.xml create mode 100644 HNS/Excercises/07082023 Найти простые числа до n/.idea/modules.xml create mode 100644 HNS/Excercises/07082023 Найти простые числа до n/.idea/vcs.xml create mode 100644 HNS/Excercises/07082023 Найти простые числа до n/.idea/workspace.xml create mode 100644 HNS/Excercises/07082023 Найти простые числа до n/main.py diff --git a/HNS/Excercises/07082023 Найти простые числа до n/.idea/.gitignore b/HNS/Excercises/07082023 Найти простые числа до n/.idea/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/HNS/Excercises/07082023 Найти простые числа до n/.idea/07082023 Найти простые числа до n.iml b/HNS/Excercises/07082023 Найти простые числа до n/.idea/07082023 Найти простые числа до n.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/HNS/Excercises/07082023 Найти простые числа до n/.idea/07082023 Найти простые числа до n.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/HNS/Excercises/07082023 Найти простые числа до n/.idea/inspectionProfiles/profiles_settings.xml b/HNS/Excercises/07082023 Найти простые числа до n/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/HNS/Excercises/07082023 Найти простые числа до n/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/HNS/Excercises/07082023 Найти простые числа до n/.idea/misc.xml b/HNS/Excercises/07082023 Найти простые числа до n/.idea/misc.xml new file mode 100644 index 0000000..e3d3645 --- /dev/null +++ b/HNS/Excercises/07082023 Найти простые числа до n/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/HNS/Excercises/07082023 Найти простые числа до n/.idea/modules.xml b/HNS/Excercises/07082023 Найти простые числа до n/.idea/modules.xml new file mode 100644 index 0000000..2ccc658 --- /dev/null +++ b/HNS/Excercises/07082023 Найти простые числа до n/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/HNS/Excercises/07082023 Найти простые числа до n/.idea/vcs.xml b/HNS/Excercises/07082023 Найти простые числа до n/.idea/vcs.xml new file mode 100644 index 0000000..c2365ab --- /dev/null +++ b/HNS/Excercises/07082023 Найти простые числа до n/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/HNS/Excercises/07082023 Найти простые числа до n/.idea/workspace.xml b/HNS/Excercises/07082023 Найти простые числа до n/.idea/workspace.xml new file mode 100644 index 0000000..352c7e3 --- /dev/null +++ b/HNS/Excercises/07082023 Найти простые числа до n/.idea/workspace.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + 1691429146835 + + + + + + + \ No newline at end of file diff --git a/HNS/Excercises/07082023 Найти простые числа до n/main.py b/HNS/Excercises/07082023 Найти простые числа до n/main.py new file mode 100644 index 0000000..1622578 --- /dev/null +++ b/HNS/Excercises/07082023 Найти простые числа до n/main.py @@ -0,0 +1,70 @@ +def verify(message, expected, actual): + a = "=========================" + print(a) + print(message) + if type(actual) != type(expected) or actual != expected: + print("FAILED!") + + print(f"Expected value: {expected}") + print(f"Actual value: {actual}") + + print(a) + return False + else: + print("SUCCESS!") + print(a) + return True + + +def verify_all(dataset): + summa_success = int() + summa_failed = int() + for result in dataset: + if verify(result[0], result[1], result[2]): + summa_success += 1 + else: + summa_failed += 1 + print("Total:", len(dataset), "Successful:", summa_success, "Failed:", summa_failed) + return True + + +def prime_generator(n): + primes = [] + if type(n) is int and n > 2: + sieve = [True] * n + for i in range(2, n + 1): + if sieve: + for j in range(2*i, n, i): + sieve[j] = False + for p in range(2, n): + if sieve[p]: + primes.append(p) + return primes + else: + return [] + + + +dataset = [ # Проверочные тесты, что вообще что-то работает + ("prime_generator0", ([]), prime_generator(2)), + ("prime_generator1", ([2, 3, 5]), prime_generator(7)), + ("prime_generator2", ([2]), prime_generator(3)), + ("prime_generator3", ([]), prime_generator(-2)), + ("prime_generator4", ([2, 3, 5, 7]), prime_generator(10)), + + # Тесты на пустые значения + ("prime_generator5", ([]), prime_generator('')), + ("prime_generator6", ([]), prime_generator(None)), + + # Тесты на неверный тип + ("prime_generator7", ([]), prime_generator("fgfg")), + ("prime_generator8", ([]), prime_generator(True)), + + # Тесты на редкие случаи + ("prime_generator9", ([]), prime_generator(1.5)), + ("prime_generator10", ([]), prime_generator([23])), + ("prime_generator11", ([]), prime_generator(' ..,..,,2')), +] + + +verify_all(dataset) \ No newline at end of file