pb1a38a600

Common mistakes in primality testing

Nov 9th, 2026
8
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. Common mistakes in primality testing
  2.  
  3. Помимо самого решения, собрал частые ошибки, которые новички допускают в этой задаче.
  4.  
  5. Задача
  6.  
  7. Определить, является ли число n простым. Достаточно проверять делители до квадратного корня из n.
  8.  
  9. Решение
  10.  
  11. ``python
  12. def is_prime(n: int) -> bool:
  13. if n < 2:
  14. return False
  15. for d in range(2, int(n 0.5) + 1):
  16. if n % d == 0:
  17. return False
  18. return True
  19.  
  20. print(is_prime(29))
  21. `
  22.  
  23. Как это работает
  24.  
  25. Если у числа есть делитель, больший корня, то у него есть и парный меньший. Поэтому перебор до √n гарантированно находит любой составной делитель.
  26.  
  27. Пример работы
  28.  
  29. `text
  30. True
  31. ``
  32.  
  33. Сложность
  34.  
  35. O(√n) по времени, O(1) по памяти.
  36.  
  37. Частые ошибки
  38.  
  39. 1. Не обрабатывать крайние случаи. Пустой ввод, ноль, отрицательные числа — именно там решение чаще всего ломается.
  40. 2. Смешивать типы данных. Строки и числа ведут себя по-разному; неявное приведение типов — источник неочевидных багов.
  41. 3. Писать код без проверки на маленьких примерах.** Прогоните решение вручную на 2-3 значениях, прежде чем считать задачу решённой.
  42.  
  43. Если решение заработало с первого раза — всё равно сверьтесь со списком ошибок: половина багов рождается при доработках.
  44.  
  45. View Full Gallery → https://go.cbrop.com/prse
  46.  
  47. Related:
  48.  
  49. https://discuss.tchncs.de/post/65441211
  50. https://paper.wf/olgasvoboda85log/tu-zai-ai-pen-shui
  51. https://news-ctl-posts.hashnode.dev/writing-tests-for-computing-an-average-mw7bwzzn
  52. https://pastebin.com/RTf9y65S
  53. https://frames23638.mataroa.blog/blog/punjabi-bhabhi-mms-desi-housewife-private-videos/
  54.  
Advertisement
Add Comment
Please, Sign In to add comment