Загружаю ДЗ по нахождению простых чисел до N

This commit is contained in:
ehermakov 2023-08-07 20:27:23 +03:00
parent 811b478b1c
commit 9eafbd2a8f
8 changed files with 175 additions and 0 deletions

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (07082023 Найти простые числа до n)" project-jdk-type="Python SDK" />
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/07082023 Найти простые числа до n.iml" filepath="$PROJECT_DIR$/.idea/07082023 Найти простые числа до n.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../.." vcs="Git" />
</component>
</project>

View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="ab6317b4-9604-4445-87f1-aef0066039c1" name="Changes" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../../.." />
</component>
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
<component name="ProjectId" id="2TfLNGtnUAIjsNzMK7GrINMdDbe" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true"
}
}]]></component>
<component name="RunManager">
<configuration name="main" type="PythonConfigurationType" factoryName="Python" nameIsGenerated="true">
<module name="07082023 Найти простые числа до n" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/main.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="ab6317b4-9604-4445-87f1-aef0066039c1" name="Changes" comment="" />
<created>1691429146835</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1691429146835</updated>
</task>
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
</component>
</project>

View File

@ -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)