Загружаю ДЗ по нахождению простых чисел до N
This commit is contained in:
parent
811b478b1c
commit
9eafbd2a8f
|
@ -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>
|
|
@ -0,0 +1,6 @@
|
||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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)
|
Loading…
Reference in New Issue