{"id":360112,"date":"2024-05-21T00:46:31","date_gmt":"2024-05-21T00:46:31","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=360112"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=360112","title":{"rendered":"<span>\u0423\u0441\u043a\u043e\u0440\u044f\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043b\u044f 50-\u043b\u0435\u0442\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043d\u0430 180000%<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/fc1\/47e\/e80\/fc147ee8033fcceb91091db17ece985c.jpg\" alt=\"board.jpg\" title=\"SBC \u0434\u043b\u044f Intel 4040\" width=\"1200\" height=\"1600\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fc1\/47e\/e80\/fc147ee8033fcceb91091db17ece985c.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>SBC \u0434\u043b\u044f Intel 4040<\/figcaption><\/div>\n<\/figure>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0433\u043e\u0434\u0443 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, <a href=\"https:\/\/habr.com\/ru\/articles\/660171\/\" rel=\"noopener noreferrer nofollow\">\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0449\u0443\u044e 255 \u0446\u0438\u0444\u0440 \u0447\u0438\u0441\u043b\u0430 \u03c0 <\/a>\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u043f\u0435\u0440\u0432\u043e\u043c \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u043e\u0442 Intel &#8212; 4004. \u0412 \u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0440\u0435\u043a\u043e\u0440\u0434 ENIAC&#8217;a &#8212; 2035 \u0446\u0438\u0444\u0440 [^1], \u043d\u043e \u043f\u043e\u0431\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0435 \u0441\u043c\u043e\u0433. \u041d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0433\u0435\u0448\u0442\u0430\u043b\u044c\u0442. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u0440\u0435\u0435\u043c\u043d\u0438\u043a\u043e\u0432 \u043e\u0442 Intel &#8212; 4040. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0440\u0430\u043c\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u043a\u043e\u0434:<\/p>\n<ol>\n<li>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0446\u0435\u043b\u044c \u044d\u0442\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 2035 \u043f\u0435\u0440\u0432\u044b\u0445 \u0446\u0438\u0444\u0440 \u0447\u0438\u0441\u043b\u0430 \u03c0 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b ENIAC. \u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 [^2] \u043e\u0437\u0432\u0443\u0447\u0435\u043d\u044b 70 \u0447\u0430\u0441\u043e\u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 69 \u0447\u0430\u0441\u043e\u0432, 59 \u043c\u0438\u043d\u0443\u0442 \u0438 59 \u0441\u0435\u043a\u0443\u043d\u0434.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u043c\u044f\u0442\u044c, \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u0443\u044e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c. \u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0430\u043d\u043a\u043e\u0432 RAM\/ROM.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0437\u0431\u0435\u0433\u0430\u0435\u043c \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043f\u0440\u0435\u0434\u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0432 \u041f\u0417\u0423. \u0412\u0441\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f i4040. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u043e\u0432 \u043d\u0430 \u041f\u041a \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0451 \u043a\u0430\u043a \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u0443\u044e \u0441\u0435\u043a\u0446\u0438\u044e \u0432 \u043a\u043e\u0434, \u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0435\u0451 \u043d\u0430 \u043b\u0435\u0442\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0438\u043a\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445 \u0446\u0438\u0444\u0440 \u03c0. \u0414\u0430, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0432\u044b\u0432\u0435\u0441\u0442\u0438 2035+ \u0446\u0438\u0444\u0440, \u043d\u043e \u043a\u043e\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0434\u043b\u044f \u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ol>\n<p><em>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u043e \u0433\u043b\u0430\u0432\u0430\u043c, \u0430 \u043d\u0435 \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443,  \u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043d\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0433 \u043d\u0443\u0436\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u0442\u043e \u043e\u043f\u044f\u0442\u044c \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u043a \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f\u043c. \u0410 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0430\u0434 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c  \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0430 \u0432 \u043e\u0434\u0438\u043d \u043a\u0443\u0441\u043e\u043a,  \u043a\u043e\u0440\u043f\u0435\u043d\u0438\u0435 \u043d\u0430\u0434 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u043c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c &#8212; \u0432 \u0434\u0440\u0443\u0433\u043e\u0439, \u0438 \u0442.\u0434.<\/em><\/p>\n<h2>\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/h2>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e 4040 \u0432\u044b\u0448\u0435\u043b \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u043f\u043e\u0437\u0436\u0435 \u0447\u0435\u043c \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a, \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f 4004 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0441\u044c:<\/p>\n<ul>\n<li>\n<p>\u0422\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 740 \u043a\u0438\u043b\u043e\u0433\u0435\u0440\u0446. \u041e\u0434\u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0437\u0430 8 \u0438\u043b\u0438 16 \u0442\u0430\u043a\u0442\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043d\u0430\u0441 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 92500 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 (ISA) \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u043b\u0441\u044f, \u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0447\u0442\u043e &#171;\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e&#187;. \u0412\u0441\u0451 \u0435\u0449\u0435 \u043d\u0435\u0442 \u043d\u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0438 \u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u043d\u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e. \u0427\u0435\u0433\u043e \u0443\u0436 \u0442\u0430\u043c, \u0434\u0430\u0436\u0435 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u041e\u0417\u0423 \u043d\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0441\u044f &#8212; 1280 \u0431\u0430\u0439\u0442. \u0414\u0430-\u0434\u0430, \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430. \u0412\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u043d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0440\u043e \u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u043e\u0431\u044a\u0451\u043c, \u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b [^3] \u0441 1280 \u0431\u0430\u0439\u0442\u0430\u043c\u0438 \u043d\u0430 \u0431\u043e\u0440\u0442\u0443 (\u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u044b\u0445 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u043a\u0430\u043a \u043d\u0430\u043c \u0438 \u043d\u0430\u0434\u043e).<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0447\u0442\u043e \u0436\u0435 \u043d\u0430\u043c \u043f\u0440\u0438\u043d\u0451\u0441 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e 4040 [^11]? \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u0443\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0443, \u043c\u0435\u043d\u044c\u0448\u0435\u0435 \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a:<\/p>\n<ul>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 AND\/OR. \u0418 \u044d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e 4004 \u043d\u0435 \u0438\u043c\u0435\u043b \u0442\u0430\u043a\u043e\u0439 \u0440\u043e\u0441\u043a\u043e\u0448\u0438. \u041d\u043e \u043d\u0435 \u0432\u0441\u0451 \u0442\u0430\u043a \u0440\u0430\u0434\u0443\u0436\u043d\u043e &#8212; \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u0443\u044e \u0434\u0438\u0437\u044a\u044e\u043d\u043a\u0446\u0438\u044e\/\u043a\u043e\u043d\u044a\u044e\u043d\u043a\u0446\u0438\u044e \u043d\u0430\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u0438. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, <code>AN6<\/code> \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0435 \u0418\u041b\u0418 \u043d\u0430\u0434 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043c <code>rr6<\/code> \u0438 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0435\u043a \u0432\u044b\u0437\u043e\u0432\u0430 \u0432\u044b\u0440\u043e\u0441 \u0441 3-\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0434\u043e 7. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0435\u043a\u0430 \u043c\u0435\u043d\u0435\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0445\u043e\u0442\u044f \u044f \u0441 \u044d\u0442\u0438\u043c \u0432\u0441\u0451 \u0436\u0435 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0441\u0442\u0430\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 &#8212; 24 \u0432\u043c\u0435\u0441\u0442\u043e 16. \u041d\u043e ISA \u043d\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0430\u0441\u044c \u0438 4040 \u0438\u043c\u0435\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0441 4004. \u0422\u043e \u0435\u0441\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432\u0441\u0451 \u0435\u0449\u0435 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d 4-\u043c\u044f \u0431\u0438\u0442\u0430\u043c\u0438. \u041a\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b? \u041d\u0435 \u0441\u0430\u043c\u044b\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c &#8212; \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b (\u0431\u0430\u043d\u043a\u0438) \u0442\u0443\u0434\u0430-\u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 <code>SB0<\/code> \/ <code>SB1<\/code><\/p>\n<\/li>\n<li>\n<p>\u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u041f\u0417\u0423 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0441\u044f. \u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0441\u044f \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0430\u043d\u043a ROM \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 4 \u043a\u0438\u0431\u0438\u0431\u0430\u0439\u0442\u0430\u043c\u0438. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0431\u0430\u043d\u043a\u0430\u043c\u0438 \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0435 \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0438\u043d\u0433\u0430 \u0432 \u043a\u043e\u0434\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 <code>DB0<\/code> \/ <code>DB1<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430<\/h2>\n<h3>\u0412\u044b\u0431\u043e\u0440 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430<\/h3>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c:<\/p>\n<ul>\n<li>\n<p><strong>\u041a\u0440\u0430\u043d\u0438\u043a\u043e\u0432\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c <\/strong>[^4]. \u042f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0435\u0433\u043e \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0415\u0441\u043b\u0438 \u0432\u043a\u0440\u0430\u0442\u0446\u0435, \u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c \u0446\u0438\u0444\u0440, \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u0432 \u041e\u0417\u0423. \u0420\u0430\u0437\u043c\u0435\u0440 \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u0435\u043d \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445 \u0446\u0438\u0444\u0440. \u041d\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 RAM \u0434\u043b\u044f 2000+ \u0446\u0438\u0444\u0440.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D0%B8_(%D1%87%D0%B8%D1%81%D0%BB%D0%BE)#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B,_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BD%D0%B0_%D1%82%D0%BE%D0%B6%D0%B4%D0%B5%D1%81%D1%82%D0%B2%D0%B0%D1%85\" rel=\"noopener noreferrer nofollow\"><strong>\u0424\u043e\u0440\u043c\u0443\u043b\u044b \u041c\u044d\u0447\u0438\u043d\u0430<\/strong><\/a><strong>. <\/strong>\u0421 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u043d\u0430\u0441 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442, \u043d\u043e \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0444\u043e\u0440\u043c\u0443\u043b \u043d\u0430\u043c \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 \u043f\u0430\u043c\u044f\u0442\u0438. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u0432\u0430 \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u0430 (\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0447\u0435\u043c \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445 \u0446\u0438\u0444\u0440 \u03c0). \u041d\u0438\u043a\u0430\u043a \u043d\u0435 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c 4000+ \u0446\u0438\u0444\u0440 \u0432 1280 \u0431\u0430\u0439\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u044b\u0439 \u043a\u0440\u0430\u043d\u0438\u043a\u043e\u0432\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c <\/strong>[^5]. \u0412 \u043d\u0451\u043c \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043c\u0430\u0441\u0441\u0438\u0432, \u043d\u043e, \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a \u0438 \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u0445 \u041c\u044d\u0447\u0438\u043d\u0430, \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u0432\u0435\u0441\u044c\u043c\u0430 \u0434\u043b\u0438\u043d\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438. \u0414\u0430\u0436\u0435 \u0434\u043b\u044f 255 \u0446\u0438\u0444\u0440 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0436\u0435 7 \u043a\u0438\u0431\u0438\u0431\u0430\u0439\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u043e\u0442 Bailey\u2013Borwein\u2013Plouffe <\/strong>[^6]. \u0412\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0438\u0434\u0435\u044f, \u043d\u043e \u043f\u043e \u044d\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u03c0 \u0432 16-\u0440\u0438\u0447\u043d\u043e\u0439 \u0438\u043b\u0438 2-\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. \u042f \u0432\u0441\u0451 \u0436\u0435 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 10-\u0440\u0438\u0447\u043d\u0443\u044e.<\/p>\n<\/li>\n<li>\n<p><strong>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u041f\u043b\u0443\u0444\u0444\u0430<\/strong> [^7]. \u041e\u0447\u0435\u043d\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439. \u0421 \u0442\u0430\u043a\u043e\u0439 \u0430\u0441\u0438\u043c\u043f\u0442\u043e\u0442\u0438\u043a\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f (\u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e).<\/p>\n<\/li>\n<li>\n<p><strong>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0442 \u0424\u0430\u0431\u0440\u0438\u0441\u0430 \u0411\u0435\u043b\u043b\u0430\u0440\u0430, \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0435\u043d\u043d\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u041f\u043b\u0443\u0444\u0444\u0430<\/strong> [^8]. \u041d\u0435 \u0441\u0430\u043c\u044b\u0439 \u0431\u044b\u0441\u0442\u0440\u044b\u0439, \u043d\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u041a\u0441\u0430\u0432\u044c\u0435 \u0413\u0443\u0440\u0434\u043e\u043d\u0430<\/strong> [^9]. \u041e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u044b\u0439, \u043d\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0438 \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u0439. \u0414\u043b\u044f \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 \u041f\u0417\u0423, \u0432\u0435\u0434\u044c \u0443 \u043d\u0430\u0441 \u0432\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043c\u0430 \u0432 8000 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0430 \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u0437\u044f\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0411\u0435\u043b\u043b\u0430\u0440\u0430 \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0435\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c.<\/p>\n<h3>\u0418\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u0434\u043b\u044f \u03c0<\/h3>\n<p>\u041f\u043b\u0443\u0444\u0444 (\u0430 \u0437\u0430\u0442\u0435\u043c \u0438 \u0411\u0435\u043b\u043b\u0430\u0440) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u0437\u0430\u043d\u044f\u0442\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0434\u043b\u044f \u03c0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\pi+3=\\sum_{k=1}^{+\\infty}\\frac{k2^{k}}{\\left(\\begin{array}{c}2k\\\\ k\\end{array}\\right)}\" alt=\"\\pi+3=\\sum_{k=1}^{+\\infty}\\frac{k2^{k}}{\\left(\\begin{array}{c}2k\\\\ k\\end{array}\\right)}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cbb\/b7f\/471\/cbbb7f47173a65f2528aa8058dff6de5.svg\" width=\"162\" height=\"81\"\/><\/p>\n<p>\u0412\u044b\u0432\u043e\u0434 \u044d\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u044b (\u043a\u0430\u043a \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432) \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u041b\u0435\u043c\u0435\u0440\u0430. [^10] <\/p>\n<p>\u041d\u043e\u0442\u0430\u0446\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u043a\u0440\u0443\u0433\u043b\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u043a \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B1%D0%B8%D0%BD%D0%BE%D0%BC%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D1%8D%D1%84%D1%84%D0%B8%D1%86%D0%B8%D0%B5%D0%BD%D1%82\" rel=\"noopener noreferrer nofollow\">\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u0438\u043d\u043e\u043c\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442<\/a> \u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0430 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\left(\\begin{array}{c}2n\\\\ n\\end{array}\\right)=\\frac{2^n(2n-1)!!}{n!},\\:n!!=n \\cdot (n-2) \\cdots 3 \\cdot 1\" alt=\"\\left(\\begin{array}{c}2n\\\\ n\\end{array}\\right)=\\frac{2^n(2n-1)!!}{n!},\\:n!!=n \\cdot (n-2) \\cdots 3 \\cdot 1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8d5\/961\/56b\/8d596156b5333afb17d172cbf049c560.svg\" width=\"397\" height=\"50\"\/><\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e \u0440\u044f\u0434\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\pi+3=\\sum_{k=1}^{+\\infty}\\frac{k2^{k}}{\\left(\\begin{array}{c}2k\\\\ k\\end{array}\\right)}=\\sum_{k=1}^{+\\infty}\\frac{k \\cdot k!}{(2k-1)!!}\" alt=\"\\pi+3=\\sum_{k=1}^{+\\infty}\\frac{k2^{k}}{\\left(\\begin{array}{c}2k\\\\ k\\end{array}\\right)}=\\sum_{k=1}^{+\\infty}\\frac{k \\cdot k!}{(2k-1)!!}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fce\/ae8\/a0b\/fceae8a0b232ea93e47a2b414be6f2e6.svg\" width=\"305\" height=\"81\"\/><\/p>\n<h3>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 n-\u043e\u0439 \u0446\u0438\u0444\u0440\u044b \u0434\u0440\u043e\u0431\u0438<\/h3>\n<p>\u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430. \u041f\u0443\u0441\u0442\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0440\u043e\u0431\u044c<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"s = \\frac{b}{A}\" alt=\"s = \\frac{b}{A}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0a8\/be7\/bc7\/0a8be7bc7bfe265950cbf3a6fd209e24.svg\" width=\"56\" height=\"43\"\/> \u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0443\u0437\u043d\u0430\u0442\u044c \u0446\u0438\u0444\u0440\u0443 \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/30d\/f1e\/f8c\/30df1ef8c8e8cebed684b5b0a278412d.svg\" width=\"12\" height=\"12\"\/>\u044d\u0442\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430. \u041a\u0430\u043a \u043c\u044b \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A\" alt=\"A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1f2\/d0f\/bbe\/1f2d0fbbe2a1e0cf4234b36afa1d1ae2.svg\" width=\"14\" height=\"17\"\/> :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"A=\\prod_{i=1}^{m}a_{i},\\:i \\neq j \\Rightarrow a_i \\perp a_j\" alt=\"A=\\prod_{i=1}^{m}a_{i},\\:i \\neq j \\Rightarrow a_i \\perp a_j\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9e3\/220\/14b\/9e322014b41b1a813fa28530aa216012.svg\" width=\"228\" height=\"57\"\/><\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"b_i = b \\bmod a_i;\\ A_i = \\frac{A}{a_i};\\ A_i^{-1} = \\frac{1}{A_i} \\bmod a_i\" alt=\"b_i = b \\bmod a_i;\\ A_i = \\frac{A}{a_i};\\ A_i^{-1} = \\frac{1}{A_i} \\bmod a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b8c\/2f8\/fc5\/b8c2f8fc5e4589614a36e8cd381688ae.svg\" width=\"362\" height=\"46\"\/><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%B0%D1%8F_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B0%D1%85#%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4_%D0%B4%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%B0\" rel=\"noopener noreferrer nofollow\">\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0439 \u0442\u0435\u043e\u0440\u0435\u043c\u044b \u043e\u0431 \u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445<\/a> \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"b' = \\left( \\sum_{i=1}^{m} b_i A_i A_i^{-1} \\right) \\bmod{A}\" alt=\"b' = \\left( \\sum_{i=1}^{m} b_i A_i A_i^{-1} \\right) \\bmod{A}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5be\/6b4\/9bb\/5be6b49bb37c524a5657292fe162d6a1.svg\" width=\"233\" height=\"61\"\/><\/p>\n<p>\u0412\u0432\u0435\u0434\u0451\u043c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"f_i = b_i \\cdot A_i^{-1} \\bmod a_i\" alt=\"f_i = b_i \\cdot A_i^{-1} \\bmod a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/144\/b39\/e86\/144b39e86b60ffd898325755642fc47e.svg\" width=\"168\" height=\"26\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"b' = \\left( \\sum_{i=1}^{m} f_i A_i \\right) \\bmod{A}\" alt=\"b' = \\left( \\sum_{i=1}^{m} f_i A_i \\right) \\bmod{A}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a30\/abe\/517\/a30abe51721deb1a7d9b3bed605f92fd.svg\" width=\"200\" height=\"61\"\/><\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"b' = b \\bmod A\" alt=\"b' = b \\bmod A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/feb\/949\/e39\/feb949e395e4fa3b678600197337b014.svg\" width=\"110\" height=\"19\"\/>, \u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"s\" alt=\"s\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f69\/b75\/338\/f69b75338378ceae76987a0c57c368d8.svg\" width=\"9\" height=\"12\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\{s\\} = \\frac{b'}{A} = \\frac{\\left( \\sum_{i=1}^{m} \\frac{f_i}{a_i} A \\right) \\bmod{A}}{A} \\stackrel{(1)}{=} \\left\\{ \\frac{\\sum_{i=1}^{m} \\frac{f_i}{a_i} A}{A} \\right\\} = \\left\\{ \\sum_{i=1}^{m} \\frac{f_i}{a_i} \\right\\}\" alt=\"\\{s\\} = \\frac{b'}{A} = \\frac{\\left( \\sum_{i=1}^{m} \\frac{f_i}{a_i} A \\right) \\bmod{A}}{A} \\stackrel{(1)}{=} \\left\\{ \\frac{\\sum_{i=1}^{m} \\frac{f_i}{a_i} A}{A} \\right\\} = \\left\\{ \\sum_{i=1}^{m} \\frac{f_i}{a_i} \\right\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d9f\/e44\/dde\/d9fe44dde4e545b26101378b3d4727a0.svg\" width=\"536\" height=\"76\"\/><\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u043e (1) \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0442\u044b \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{x \\bmod N}{N} = \\frac{x - N \\lfloor \\frac{x}{N} \\rfloor}{N} = \\frac{x}{N} - \\lfloor \\frac{x}{N} \\rfloor = \\{\\frac{x}{N}\\}\" alt=\"\\frac{x \\bmod N}{N} = \\frac{x - N \\lfloor \\frac{x}{N} \\rfloor}{N} = \\frac{x}{N} - \\lfloor \\frac{x}{N} \\rfloor = \\{\\frac{x}{N}\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bfa\/860\/0ea\/bfa8600ea5788607e535d7d41f0f05c8.svg\" width=\"386\" height=\"48\"\/><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440 \u0447\u0438\u0441\u043b\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"s\" alt=\"s\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/810\/21e\/746\/81021e74643de46b9081a89fcdef900c.svg\" width=\"9\" height=\"12\"\/> \u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0438<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6f9\/d1a\/6ff\/6f9d1a6ff33ba67bc4b8fe716d8d3ae5.svg\" width=\"12\" height=\"12\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"D_n = \\{s \\cdot 10^n\\} = \\left\\{ \\sum_{i=1}^m \\frac {f_i \\cdot 10^n}{a_i} \\right\\} \\stackrel{(2)}{=} \\left\\{ \\sum_{i=1}^m \\frac {f_i \\cdot 10^n \\bmod {a_i}}{a_i} \\right\\}\" alt=\"D_n = \\{s \\cdot 10^n\\} = \\left\\{ \\sum_{i=1}^m \\frac {f_i \\cdot 10^n}{a_i} \\right\\} \\stackrel{(2)}{=} \\left\\{ \\sum_{i=1}^m \\frac {f_i \\cdot 10^n \\bmod {a_i}}{a_i} \\right\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c3d\/2bb\/e26\/c3d2bbe2685962dc597cf948e6a5da1e.svg\" width=\"498\" height=\"61\"\/><\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 (2) \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439: \u043c\u044b \u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0447\u0438\u0441\u0435\u043b (\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"10^n\" alt=\"10^n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/007\/084\/aab\/007084aab73f68abc4c64438f8549568.svg\" width=\"29\" height=\"18\"\/> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c). \u0418 \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0438\u0449\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0447\u0438\u0441\u043b\u0430, \u0442\u043e \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u0438 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0435.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u043d\u0435 \u0440\u0435\u043a\u0443\u0440\u0440\u0435\u043d\u0442\u043d\u0430: \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u043b\u0435\u043d \u0441\u0443\u043c\u043c\u044b \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043f\u0440\u043e\u0448\u043b\u044b\u0445. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u043c \u043d\u0435\u0442 \u043d\u0443\u0436\u0434\u044b \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0435\u0441\u044c \u0440\u044f\u0434, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u043e\u043f\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u043a\u0440\u043e\u043c\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0430\u0440\u044b \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u0431\u0430\u0439\u0442 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439.<\/p>\n<h3>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 n-\u043e\u0439 \u0446\u0438\u0444\u0440\u044b \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e \u0440\u044f\u0434\u0430<\/h3>\n<p>\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0434\u043b\u044f \u03c0 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0440\u043e\u0431\u044c, \u0430 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0440\u044f\u0434. \u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u0432\u044b\u043a\u043b\u0430\u0434\u043a\u0438 \u043a \u0447\u0438\u0441\u043b\u0443, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443 \u0432 \u0444\u043e\u0440\u043c\u0435 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0440\u044f\u0434\u0430. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u043c, \u0447\u0442\u043e \u043a\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u0439 \u0432 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0437\u043d\u0430\u043c\u0435\u043d\u0430\u0442\u0435\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A_k\" alt=\"A_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/481\/9a9\/921\/4819a99211aabd45e96e178fdf456dea.svg\" width=\"23\" height=\"20\"\/>  \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 1. <\/p>\n<p>\u041f\u0443\u0441\u0442\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(a_1, a_2, ...,a_m)\" alt=\"(a_1, a_2, ...,a_m)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/80d\/14b\/dca\/80d14bdca2d483571c234057cdff2679.svg\" width=\"128\" height=\"22\"\/> \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A_k\" alt=\"A_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ee2\/58a\/3d2\/ee258a3d26e0ae70dfe3a5eeeab1b05a.svg\" width=\"23\" height=\"20\"\/> \u0434\u043b\u044f \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ebc\/b2c\/596\/ebcb2c5962e8d33080e94d6f16a4fafe.svg\" width=\"10\" height=\"17\"\/>. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043b\u044f \u043f\u0430\u0440\u044b<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(k, i)\" alt=\"(k, i)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/91b\/3c2\/e26\/91b3c2e26d815d7bd574f788b37831d1.svg\" width=\"40\" height=\"22\"\/> \u043a\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i\" alt=\"a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/afc\/975\/6ea\/afc9756ea472ecab6e4e18c24d65098c.svg\" width=\"17\" height=\"15\"\/> \u0432 \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A_k\" alt=\"A_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5d8\/369\/853\/5d83698532af5b96df6173daefed2059.svg\" width=\"23\" height=\"20\"\/> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c 0 (\u044d\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A_k\" alt=\"A_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f29\/006\/7c0\/f290067c0563e82ac51647a9227835d6.svg\" width=\"23\" height=\"20\"\/>).  \u0422\u0430\u043a\u0436\u0435 \u043e\u0431\u044a\u044f\u0432\u0438\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v_i^{max}\" alt=\"v_i^{max}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f00\/655\/c2f\/f00655c2f4c77d610e35c3031eddde4f.svg\" width=\"38\" height=\"22\"\/> &#8212; \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i\" alt=\"a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/12b\/4b9\/995\/12b4b9995517138b7c595d410ff2a5d0.svg\" width=\"17\" height=\"15\"\/> \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0439 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A_k\" alt=\"A_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8f0\/f08\/9c1\/8f0f089c18ef2453a96b9257bd883c24.svg\" width=\"23\" height=\"20\"\/>. \u0421\u0443\u043c\u043c\u0438\u0440\u0443\u044f \u0432\u0441\u0435 \u0432\u0432\u043e\u0434\u043d\u044b\u0435, \u043c\u043e\u0436\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0440\u044f\u0434:<\/p>\n<p><img class=\"formula\" source=\"S_N=\\sum_{k=1}^N\\frac{b_k}{A_k}, A_k=\\prod_{i=1}^{m}a_i^{v_{i,k}}, 0 \\leq v_{i,k} \\leq v_i^{max},\\:i \\neq j \\Rightarrow a_i \\perp a_j, v_{i,k} > 0 \\Rightarrow a_i \\nmid b_k&#187; alt=&#187;S_N=\\sum_{k=1}^N\\frac{b_k}{A_k}, A_k=\\prod_{i=1}^{m}a_i^{v_{i,k}}, 0 \\leq v_{i,k} \\leq v_i^{max},\\:i \\neq j \\Rightarrow a_i \\perp a_j, v_{i,k} > 0 \\Rightarrow a_i \\nmid b_k&#187; src=&#187;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/502\/a3a\/174\/502a3a174e4db3cc072d2c5034677ac5.svg&#187; width=&#187;659&#8243; height=&#187;60&#8243;\/><\/p>\n<p>\u041f\u043e \u0441\u0445\u0435\u043c\u0435 \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u043e\u0431\u044a\u044f\u0432\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445:<\/p>\n<p><img class=\"formula\" source=\"A_{i,k} = \\frac {A_k}{a_i^{v_{i,k}}}\\\\ A_{i,k}^{-1} = \\frac{1}{A_{i,k}} \\bmod a_i^{v_{i,k}}\\\\ f_{i,k} = \\begin{cases} 0 &amp;\\text{if }v_{i,k}=0\\\\ b_k \\cdot A_{i,k}^{-1} \\bmod a_i^{v_{i,k}} &amp; \\text{if }v_{i,k} > 0\\\\ \\end{cases}&#187; alt=&#187;A_{i,k} = \\frac {A_k}{a_i^{v_{i,k}}}\\\\ A_{i,k}^{-1} = \\frac{1}{A_{i,k}} \\bmod a_i^{v_{i,k}}\\\\ f_{i,k} = \\begin{cases} 0 &amp;\\text{if }v_{i,k}=0\\\\ b_k \\cdot A_{i,k}^{-1} \\bmod a_i^{v_{i,k}} &amp; \\text{if }v_{i,k} > 0\\\\ \\end{cases}&#187; src=&#187;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/baf\/09d\/11b\/baf09d11b4ea2ccceac185202e729f23.svg&#187; width=&#187;698&#8243; height=&#187;164&#8243;\/><\/p>\n<p>\u0418. \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0443\u044e \u0442\u0435\u043e\u0440\u0435\u043c\u0443 \u043e\u0431 \u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0447\u043b\u0435\u043d\u0430 \u0440\u044f\u0434\u0430 \u0438 \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0440\u044f\u0434\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{b_k}{A_k} = \\left\\{ \\sum_{i=1}^{m} \\frac{f_{i,k}}{a_i^{v_{i,k}}} \\right\\} \\\\[15px]S_N = \\left\\{ \\sum_{k=1}^N \\sum_{i=1}^{m} \\frac{f_{i,k}}{a_i^{v_{i,k}}} \\right\\} = \\left\\{ \\sum_{i=1}^{m} \\sum_{k=1}^N \\frac{f_{i,k}}{a_i^{v_{i,k}}} \\right\\}\" alt=\"\\frac{b_k}{A_k} = \\left\\{ \\sum_{i=1}^{m} \\frac{f_{i,k}}{a_i^{v_{i,k}}} \\right\\} \\\\[15px]S_N = \\left\\{ \\sum_{k=1}^N \\sum_{i=1}^{m} \\frac{f_{i,k}}{a_i^{v_{i,k}}} \\right\\} = \\left\\{ \\sum_{i=1}^{m} \\sum_{k=1}^N \\frac{f_{i,k}}{a_i^{v_{i,k}}} \\right\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/83d\/5d0\/3bb\/83d5d03bb330d5b05ff3c2189102b502.svg\" width=\"698\" height=\"127\"\/><\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u043e\u0431\u0449\u0435\u0433\u043e \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i^{v_i^{max}}\" alt=\"a_i^{v_i^{max}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d23\/fa4\/b05\/d23fa4b05e72e394d2ef6662c9f32732.svg\" width=\"39\" height=\"29\"\/>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/59c\/54e\/f6c\/59c54ef6c5c7198c8ac5b9441bb52a82.svg\" width=\"10\" height=\"17\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"f'_{i,k} = f_{i,k} \\cdot a_i^{v_i^{max}-v_{i,k}} \\\\[15px] S_N = \\left\\{ \\sum_{i=1}^{m} \\sum_{k=1}^N \\frac{f'_{i,k}}{a_i^{v_{i,k}} \\cdot a_i^{v_i^{max}-v_{i,k}}} \\right\\} = \\left\\{ \\sum_{i=1}^{m} \\sum_{k=1}^N \\frac{f'_{i,k}}{a_i^{v_i^{max}}} \\right\\} \\\\[15px] S_N = \\left\\{ \\sum_{i=1}^m \\frac{f_i}{a_i^{v_i^{max}}}\\right\\}, f_i=\\left( \\sum_{k=1}^N {f'_{i,k}} \\right) \\bmod a_i^{v_i^{max}}\" alt=\"f'_{i,k} = f_{i,k} \\cdot a_i^{v_i^{max}-v_{i,k}} \\\\[15px] S_N = \\left\\{ \\sum_{i=1}^{m} \\sum_{k=1}^N \\frac{f'_{i,k}}{a_i^{v_{i,k}} \\cdot a_i^{v_i^{max}-v_{i,k}}} \\right\\} = \\left\\{ \\sum_{i=1}^{m} \\sum_{k=1}^N \\frac{f'_{i,k}}{a_i^{v_i^{max}}} \\right\\} \\\\[15px] S_N = \\left\\{ \\sum_{i=1}^m \\frac{f_i}{a_i^{v_i^{max}}}\\right\\}, f_i=\\left( \\sum_{k=1}^N {f'_{i,k}} \\right) \\bmod a_i^{v_i^{max}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ecf\/0e7\/d1a\/ecf0e7d1ad18d9570a0c4571dbf9cfb5.svg\" width=\"698\" height=\"172\"\/><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0442\u043e\u0442 \u0436\u0435 \u0442\u0440\u044e\u043a, \u0447\u0442\u043e \u0438 \u0434\u043b\u044f \u0434\u0440\u043e\u0431\u0435\u0439 &#8212; \u0442\u0430\u043a \u043a\u0430\u043a \u0446\u0435\u043b\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043d\u0430\u0441 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442, \u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u0430\u043a\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438\u0437 \u043a\u043b\u0430\u0441\u0441\u0430 \u0432\u044b\u0447\u0435\u0442\u043e\u0432 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i^{v_i^{max}}\" alt=\"a_i^{v_i^{max}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5dd\/9f6\/e67\/5dd9f6e6752e7e4cb7f37b87edac6939.svg\" width=\"39\" height=\"29\"\/>.<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 &#8212; \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"f'_{i,k}\" alt=\"f'_{i,k}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/84b\/20d\/595\/84b20d5950ae25a7b7cf7992032a5f28.svg\" width=\"27\" height=\"25\"\/> \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u043a\u043b\u0430\u0441\u0441\u0443 \u0432\u044b\u0447\u0435\u0442\u043e\u0432 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i^{v_i^{max}}\" alt=\"a_i^{v_i^{max}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/219\/0dc\/b36\/2190dcb36a7afa4bc7a343d6f971f746.svg\" width=\"39\" height=\"29\"\/>. \u042d\u0442\u043e \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u044d\u0442\u043e \u043f\u043e\u043a\u0430\u0436\u0435\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"(x \\bmod n^p) \\cdot n^{q-p} = (x - n^p \\cdot \\lfloor \\frac{x}{n^p} \\rfloor) \\cdot n^{q-p} = x \\cdot n^{q-p} - n^q \\cdot \\lfloor \\frac{x}{n^p} \\rfloor \\\\(x \\cdot n^{q-p}) \\bmod n^q = x \\cdot n^{q-p} - n^q \\cdot \\lfloor \\frac{x \\cdot n^{q-p}}{n^q} \\rfloor = x \\cdot n^{q-p} - n^q \\cdot \\lfloor \\frac{x}{n^p} \\rfloor\" alt=\"(x \\bmod n^p) \\cdot n^{q-p} = (x - n^p \\cdot \\lfloor \\frac{x}{n^p} \\rfloor) \\cdot n^{q-p} = x \\cdot n^{q-p} - n^q \\cdot \\lfloor \\frac{x}{n^p} \\rfloor \\\\(x \\cdot n^{q-p}) \\bmod n^q = x \\cdot n^{q-p} - n^q \\cdot \\lfloor \\frac{x \\cdot n^{q-p}}{n^q} \\rfloor = x \\cdot n^{q-p} - n^q \\cdot \\lfloor \\frac{x}{n^p} \\rfloor\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fb3\/52d\/cd4\/fb352dcd4c13f0e223eb13e4c8d028be.svg\" width=\"698\" height=\"88\"\/><\/p>\n<p>\u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u0432\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b, \u0438 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"f_i\" alt=\"f_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c73\/652\/647\/c736526477ef3e5af47de2a86c902b77.svg\" width=\"16\" height=\"20\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"f'_{i,k} = b_k \\cdot A_{i,k}^{-1} \\bmod a_i^{v_{i,k}} \\cdot a_i^{v_i^{max}-v_{i,k}} = b_k \\cdot A_{i,k}^{-1} \\cdot a_i^{v_i^{max}-v_{i,k}} \\bmod a_i^{v_i^{max}}\\\\[15px]f_i=\\sum_{k=1}^Nb_k\\left(\\frac{A_k}{a_i^{v_{i,k}}}\\right)^{-1}a_i^{v_i^{max}-v_{i,k}}\\bmod a_i^{v_i^{max}}\" alt=\"f'_{i,k} = b_k \\cdot A_{i,k}^{-1} \\bmod a_i^{v_{i,k}} \\cdot a_i^{v_i^{max}-v_{i,k}} = b_k \\cdot A_{i,k}^{-1} \\cdot a_i^{v_i^{max}-v_{i,k}} \\bmod a_i^{v_i^{max}}\\\\[15px]f_i=\\sum_{k=1}^Nb_k\\left(\\frac{A_k}{a_i^{v_{i,k}}}\\right)^{-1}a_i^{v_i^{max}-v_{i,k}}\\bmod a_i^{v_i^{max}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/56a\/ceb\/6ba\/56aceb6ba2d822a992f74c78c29ec52f.svg\" width=\"698\" height=\"107\"\/><\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u0434\u043b\u044f \u0446\u0438\u0444\u0440 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0440\u044f\u0434\u0430 \u043f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"D_n=\\left\\{ \\sum_{i=1}^m\\frac{f_i \\cdot 10^n \\bmod a_i^{v_i^{max}}}{a_i^{v_i^{max}}} \\right\\}\" alt=\"D_n=\\left\\{ \\sum_{i=1}^m\\frac{f_i \\cdot 10^n \\bmod a_i^{v_i^{max}}}{a_i^{v_i^{max}}} \\right\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/994\/a54\/e4d\/994a54e4df9afe6331f68183fd0385ad.svg\" width=\"267\" height=\"64\"\/><\/p>\n<p>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"b_k\" alt=\"b_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/693\/ffd\/49c\/693ffd49c0259b4a74a9d30abd27a5a8.svg\" width=\"17\" height=\"20\"\/>, <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A_k\" alt=\"A_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/908\/143\/752\/908143752fb159b26a4ba821928ab45b.svg\" width=\"23\" height=\"20\"\/> \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"f_i\" alt=\"f_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e24\/bbe\/69b\/e24bbe69b99d6383000aadbd8a200278.svg\" width=\"16\" height=\"20\"\/>\u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u03c0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"b_k = k! \\\\A_k = (2k-1)!!\\\\v_{i,k} = v_{a_i}({A_k})\\\\u_{i,k} = v_{a_i}({b_k})\\\\f_i=\\sum_{k=1}^N k\\cdot \\left( \\frac{b_k}{a_i^{u_{i,k}}} \\right) \\cdot \\left( \\frac{A_k}{a_i^{v_{i,k}}} \\right)^{-1} \\cdot a_i^{v_i^{max}-v_{i,k}+u_{i,k}} \\bmod a_i^{v_i^{max}}\" alt=\"b_k = k! \\\\A_k = (2k-1)!!\\\\v_{i,k} = v_{a_i}({A_k})\\\\u_{i,k} = v_{a_i}({b_k})\\\\f_i=\\sum_{k=1}^N k\\cdot \\left( \\frac{b_k}{a_i^{u_{i,k}}} \\right) \\cdot \\left( \\frac{A_k}{a_i^{v_{i,k}}} \\right)^{-1} \\cdot a_i^{v_i^{max}-v_{i,k}+u_{i,k}} \\bmod a_i^{v_i^{max}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bd8\/77b\/42b\/bd877b42b69e0e2e6df61487957683dc.svg\" width=\"698\" height=\"174\"\/><\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v_{a_i}(x)\" alt=\"v_{a_i}(x)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/85f\/2eb\/1c2\/85f2eb1c26bd7e23af55fefae601321b.svg\" width=\"49\" height=\"23\"\/>&#8212; \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i\" alt=\"a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ee8\/cd3\/3e7\/ee8cd33e7e24140070b3c17b05944452.svg\" width=\"17\" height=\"15\"\/>\u0432 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dad\/505\/4a1\/dad5054a1fbc95fd993ae3afd5aa89f4.svg\" width=\"11\" height=\"12\"\/>.<\/p>\n<p>\u041f\u0430\u0440\u0430 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u043e\u0438\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c: \u0432\u044b\u043d\u0435\u0441\u043b\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0e9\/300\/4c8\/0e93004c874c12436f0dd18c3f3032e8.svg\" width=\"10\" height=\"17\"\/>\u0438\u0437 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"b_k\" alt=\"b_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/807\/a12\/b11\/807a12b11b171553d30c613d697ff37a.svg\" width=\"17\" height=\"20\"\/>\u043d\u0435 \u0438\u0437-\u0437\u0430 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0430 \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430. \u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0441\u0440\u0430\u0437\u0443 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u043c \u043e\u0431\u0449\u0438\u0439 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"b_k\" alt=\"b_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/72f\/c1a\/74a\/72fc1a74a4f0443fefaac384424df0b9.svg\" width=\"17\" height=\"20\"\/>\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A_k\" alt=\"A_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/69c\/3b6\/d1a\/69c3b6d1a01ec8aa8c21a94c3fd9b090.svg\" width=\"23\" height=\"20\"\/>. <\/p>\n<h3>\u041d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043a\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0432 \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f<\/h3>\n<p>\u041c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c  <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v_i^{max}\" alt=\"v_i^{max}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/38b\/19a\/2d0\/38b19a2d0c4010fb2bacaa6ee8f9c7ea.svg\" width=\"38\" height=\"22\"\/>. \u0423 \u043d\u0430\u0441 \u0431\u044b\u043b\u0430 \u0432\u0432\u043e\u0434\u043d\u0430\u044f, \u0447\u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i\" alt=\"a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/07f\/d60\/2b2\/07fd602b24874d61fa723db0ea57eca7.svg\" width=\"17\" height=\"15\"\/> \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"b_k\" alt=\"b_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c01\/635\/924\/c0163592401a14e18d3f0869bb1dd7cf.svg\" width=\"17\" height=\"20\"\/>, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u044b, \u0438\u0431\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"k!\" alt=\"k!\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3fa\/146\/a78\/3fa146a78d4f6b679424cff1aa06986d.svg\" width=\"15\" height=\"17\"\/> \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0432 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f\u0445 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i\" alt=\"a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c97\/61d\/5b2\/c9761d5b2a2d6daa69f711476ee956ec.svg\" width=\"17\" height=\"15\"\/>. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u044d\u0442\u043e \u0438\u043c\u0435\u0435\u0442 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0437\u043d\u0430\u0447\u0430\u043d\u0438\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v_i^{max}\" alt=\"v_i^{max}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/be4\/139\/24b\/be413924b78af9d5c83c2d3b44fd552a.svg\" width=\"38\" height=\"22\"\/>. \u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i\" alt=\"a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/69e\/49b\/925\/69e49b92500cb1e487bf0320836969fd.svg\" width=\"17\" height=\"15\"\/>\u043a\u0430\u043a:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"v_{a_i}\\left(\\frac{A_k}{b_k} \\right) = v_{a_i}\\left(\\frac{(2N - 1)!!}{N!}\\right)\" alt=\"v_{a_i}\\left(\\frac{A_k}{b_k} \\right) = v_{a_i}\\left(\\frac{(2N - 1)!!}{N!}\\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/24f\/998\/82d\/24f99882d23a28d954beff58ba46aecc.svg\" width=\"258\" height=\"50\"\/><\/p>\n<p>\u0420\u0430\u0441\u043a\u0440\u043e\u0435\u043c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B0%D0%BB#%D0%94%D0%B2%D0%BE%D0%B9%D0%BD%D0%BE%D0%B9_%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B0%D0%BB\" rel=\"noopener noreferrer nofollow\">\u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b<\/a> \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <a href=\"https:\/\/en.wikipedia.org\/wiki\/Legendre%27s_formula\" rel=\"noopener noreferrer nofollow\">\u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u041b\u0435\u0436\u0430\u043d\u0434\u0440\u0430<\/a>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{align*} v_{a_i}\\left(\\frac{(2N - 1)!!}{N!}\\right) &amp; = v_{a_i}\\left( \\frac{(2N)!}{2^N \\cdot N! \\cdot N!} \\right) \\\\ &amp; \\stackrel{(3)}{=} v_{a_i}\\left( \\frac{(2N)!}{N! \\cdot N!} \\right) \\\\ &amp; = \\sum_{t=1}^L \\lfloor \\frac{2N}{a_i^t} \\rfloor - 2\\sum_{t=1}^L \\lfloor \\frac{N}{a_i^t} \\rfloor \\\\ &amp; = \\sum_{t=1}^L \\left( \\lfloor \\frac{2N}{a_i^t} \\rfloor - 2 \\lfloor \\frac{N}{a_i^t} \\rfloor \\right) \\end{align*}\" alt=\"\\begin{align*} v_{a_i}\\left(\\frac{(2N - 1)!!}{N!}\\right) &amp; = v_{a_i}\\left( \\frac{(2N)!}{2^N \\cdot N! \\cdot N!} \\right) \\\\ &amp; \\stackrel{(3)}{=} v_{a_i}\\left( \\frac{(2N)!}{N! \\cdot N!} \\right) \\\\ &amp; = \\sum_{t=1}^L \\lfloor \\frac{2N}{a_i^t} \\rfloor - 2\\sum_{t=1}^L \\lfloor \\frac{N}{a_i^t} \\rfloor \\\\ &amp; = \\sum_{t=1}^L \\left( \\lfloor \\frac{2N}{a_i^t} \\rfloor - 2 \\lfloor \\frac{N}{a_i^t} \\rfloor \\right) \\end{align*}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4ac\/4cd\/1cc\/4ac4cd1ccafd687e951d0aceeed1d439.svg\" width=\"364\" height=\"227\"\/><\/p>\n<p>\u0412 (3) \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u043b\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"2^N\" alt=\"2^N\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6b4\/bd3\/f6a\/6b4bd3f6a01ea2d3c052fe2be4694eb5.svg\" width=\"24\" height=\"21\"\/>\u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0447\u043b\u0435\u043d \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 2, \u0430 \u0441\u0440\u0435\u0434\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i\" alt=\"a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d69\/65c\/c4f\/d6965cc4f3cd4c100b1c0c0c1d049fa9.svg\" width=\"17\" height=\"15\"\/>\u0443 \u043d\u0430\u0441 \u043d\u0435\u0442 2 (<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A_k\" alt=\"A_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/40b\/46f\/22a\/40b46f22a06b9c4195aacdb7fbeb0c9e.svg\" width=\"23\" height=\"20\"\/>\u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u043d\u0438\u044e \u0434\u0432\u043e\u0439\u043d\u043e\u0433\u043e \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b\u0430 \u0438\u043c\u0435\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0447\u0451\u0442\u043d\u044b\u0435 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0438), \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u043d \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043a\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u043b\u0435\u043d \u0441\u0443\u043c\u043c\u044b \u0438 \u043e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043e\u043d \u0440\u0430\u0432\u0435\u043d \u043b\u0438\u0431\u043e 0, \u043b\u0438\u0431\u043e 1:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\lfloor \\frac{2N}{a_i^t} \\rfloor - 2 \\lfloor \\frac{N}{a_i^t} \\rfloor  = \\lfloor \\frac{N}{a_i^t} \\rfloor + \\lfloor \\frac{N}{a_i^t} + \\frac{1}{2} \\rfloor - 2 \\lfloor \\frac{N}{a_i^t} \\rfloor  = \\lfloor \\frac{N}{a_i^t} + \\frac{1}{2} \\rfloor - \\lfloor \\frac{N}{a_i^t} \\rfloor  \\leq 1\" alt=\"\\lfloor \\frac{2N}{a_i^t} \\rfloor - 2 \\lfloor \\frac{N}{a_i^t} \\rfloor  = \\lfloor \\frac{N}{a_i^t} \\rfloor + \\lfloor \\frac{N}{a_i^t} + \\frac{1}{2} \\rfloor - 2 \\lfloor \\frac{N}{a_i^t} \\rfloor  = \\lfloor \\frac{N}{a_i^t} + \\frac{1}{2} \\rfloor - \\lfloor \\frac{N}{a_i^t} \\rfloor  \\leq 1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0c5\/2ba\/b18\/0c52bab18abed048dacdf1eb9e0cc961.svg\" width=\"579\" height=\"50\"\/><\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"L = \\lfloor log_{a_i}{2N} \\rfloor\" alt=\"L = \\lfloor log_{a_i}{2N} \\rfloor\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/27a\/332\/5b9\/27a3325b995a15eb3c3c15b43977f136.svg\" width=\"121\" height=\"23\"\/>\u0438, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u043b\u0435\u043d \u0441\u0443\u043c\u043c\u044b \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d 1, \u0442\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0443\u043c\u043c\u044b \u0431\u0443\u0434\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u043d\u043e \u0441\u0432\u0435\u0440\u0445\u0443 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v_i^{max} \\leq \\lfloor log_{a_i}{2N} \\rfloor\" alt=\"v_i^{max} \\leq \\lfloor log_{a_i}{2N} \\rfloor\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/82a\/355\/004\/82a3550048dac1ac715387cc8fba02c5.svg\" width=\"146\" height=\"24\"\/>.<\/p>\n<h3>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0439 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e \u0440\u044f\u0434\u0430 \u03c0<\/h3>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a\u043e\u0435 \u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"N\" alt=\"N\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/77f\/374\/61c\/77f37461c6632259ecd1275a286f8823.svg\" width=\"17\" height=\"17\"\/>) \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0446\u0438\u0444\u0440\u044b \u0447\u0438\u0441\u043b\u0430, \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438. \u0415\u0441\u043b\u0438 \u0444\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u0437\u0430\u043f\u0440\u043e\u0441, \u0442\u043e \u0432 \u0432\u0438\u0434\u0435 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0430 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{b_M}{A_M} \\cdot 10^n &lt; 1\" alt=\"\\frac{b_M}{A_M} \\cdot 10^n &lt; 1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5db\/cd8\/b3a\/5dbcd8b3af748845e024e50402f40d70.svg\" width=\"116\" height=\"46\"\/><\/p>\n<p>\u0423\u043c\u043d\u043e\u0436\u0430\u044f \u043d\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"10^n\" alt=\"10^n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5fc\/e51\/f81\/5fce51f81ebb9a2a07f27c6e3eb774b1.svg\" width=\"29\" height=\"18\"\/>, \u043c\u044b \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u043c \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u043d\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/89e\/aa3\/9f9\/89eaa39f904fa44259340051f303ef60.svg\" width=\"12\" height=\"12\"\/>\u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0432\u043f\u0440\u0430\u0432\u043e. \u0426\u0438\u0444\u0440\u044b \u0441\u043b\u0435\u0432\u0430 \u043e\u0442 \u0442\u043e\u0447\u043a\u0438 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b, \u0438 \u0437\u043d\u0430\u0447\u0438\u0442 \u0441\u0438\u043b\u044c\u043d\u043e\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"M\" alt=\"M\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e6e\/902\/693\/e6e90269312652f35232cc54d2894402.svg\" width=\"20\" height=\"17\"\/>\u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u044f \u043d\u0430 \u043d\u0438\u0445, \u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0438\u0445 \u0437\u0430 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0441 \u043a\u0430\u043a\u043e\u0433\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"M\" alt=\"M\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/31a\/69d\/009\/31a69d009cfc2f7e213a3375a2149d69.svg\" width=\"20\" height=\"17\"\/>\u0446\u0435\u043b\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430, \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\epsilon\" alt=\"\\epsilon\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/99b\/ce7\/932\/99bce79322470ffaa0f7b26f07a8890a.svg\" width=\"8\" height=\"12\"\/>\u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043f\u0430\u0441\u0430 \u043d\u0430 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u0440\u0443\u0433\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u0438\u043d\u043e\u043c\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\left(\\begin{array}{c}2n\\\\ n\\end{array}\\right)=\\frac{4^n(2n-1)!!}{(2n)!!}\" alt=\"\\left(\\begin{array}{c}2n\\\\ n\\end{array}\\right)=\\frac{4^n(2n-1)!!}{(2n)!!}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/267\/c6b\/a49\/267c6ba49bcac2bb9b22a52a9bf24082.svg\" width=\"188\" height=\"50\"\/><\/p>\n<p>\u0422\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0440\u044f\u0434 \u03c0, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0432\u044b\u0448\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{M \\cdot 2^M}{\\left(\\begin{array}{c}2M\\\\ M\\end{array}\\right)} \\cdot 10^n  = \\frac{M \\cdot 2^M}{\\left( \\frac{4^M \\cdot (2M - 1)!!}{2M!!} \\right)} \\cdot 10^n  = \\frac{M \\cdot 2M!!}{2^M \\cdot (2M - 1)!!} \\cdot 10^n\" alt=\"\\frac{M \\cdot 2^M}{\\left(\\begin{array}{c}2M\\\\ M\\end{array}\\right)} \\cdot 10^n  = \\frac{M \\cdot 2^M}{\\left( \\frac{4^M \\cdot (2M - 1)!!}{2M!!} \\right)} \\cdot 10^n  = \\frac{M \\cdot 2M!!}{2^M \\cdot (2M - 1)!!} \\cdot 10^n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/15b\/801\/369\/15b801369dfb4b4cd6fd49c5b484208a.svg\" width=\"504\" height=\"78\"\/><\/p>\n<p>\u0418\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c \u0447\u0430\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0435\u0433\u043e \u0433\u0440\u0430\u043d\u0438\u0446\u044b:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"1 &lt; \\frac{2M!!}{(2M - 1)!!} \\leq M\" alt=\"1 &lt; \\frac{2M!!}{(2M - 1)!!} \\leq M\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6b4\/f87\/ec6\/6b4f87ec66cb04bca00156acc23dd035.svg\" width=\"177\" height=\"48\"\/><\/p>\n<p>\u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u043e\u0439\u043d\u043e\u0433\u043e \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b\u0430, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0435\u0440\u0445\u043d\u044f\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u0432 \u0432\u0438\u0434\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"M\" alt=\"M\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d6f\/d4d\/566\/d6fd4d56639c13909a5fd1c0f8bcadd4.svg\" width=\"20\" height=\"17\"\/>, \u043a\u043e\u0433\u0434\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"M \\geq 4\" alt=\"M \\geq 4\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/292\/056\/3bb\/2920563bb5017ad4d5fc87a8191564b8.svg\" width=\"56\" height=\"19\"\/>. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0435\u0440\u043d\u0451\u043c\u0441\u044f \u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c\u0443 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0443 (\u0437\u0430\u043c\u0435\u043d\u0438\u0432 \u043a\u0443\u0441\u043e\u0447\u0435\u043a \u0441\u0432\u0435\u0440\u0445\u0443 \u043d\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"M^t, 0 &lt; t \\leq 1\" alt=\"M^t, 0 &lt; t \\leq 1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fc3\/ef7\/e32\/fc3ef7e32cf05c4704d61a24b99b9b14.svg\" width=\"114\" height=\"23\"\/>):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"1 &lt; r \\leq 2 \\\\[15px]\\frac{M^{r} \\cdot 10^n}{2^M} &lt; 1\" alt=\"1 &lt; r \\leq 2 \\\\[15px]\\frac{M^{r} \\cdot 10^n}{2^M} &lt; 1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/636\/c91\/297\/636c9129747914352074c150129da652.svg\" width=\"698\" height=\"82\"\/><\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0434\u044f \u0441\u0435\u0440\u0438\u044e \u043d\u0435\u0445\u0438\u0442\u0440\u044b\u0445 \u0438\u043c\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0441\u043a\u043e\u043c\u0443\u044e \u043e\u0446\u0435\u043d\u043a\u0443 \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"M\" alt=\"M\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e58\/8d5\/d3e\/e588d5d3ef387764f4054bef8dec5b4c.svg\" width=\"20\" height=\"17\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{align*} \\frac{M^r \\cdot 10^n}{2^M} &lt; 1    &amp; \\Rightarrow M^r \\cdot 10^n &lt; 2^M \\\\   &amp; \\Rightarrow log_{2}{M^r} + log_{2}{10^n} &lt; M \\\\   &amp; \\Rightarrow r \\cdot log_{2}{M} + n \\cdot log_{2}{10} &lt; M \\end{align*}\" alt=\"\\begin{align*} \\frac{M^r \\cdot 10^n}{2^M} &lt; 1    &amp; \\Rightarrow M^r \\cdot 10^n &lt; 2^M \\\\   &amp; \\Rightarrow log_{2}{M^r} + log_{2}{10^n} &lt; M \\\\   &amp; \\Rightarrow r \\cdot log_{2}{M} + n \\cdot log_{2}{10} &lt; M \\end{align*}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/01e\/ca9\/e8a\/01eca9e8a86fe96378b2ccd6a51642ca.svg\" width=\"374\" height=\"96\"\/><\/p>\n<p>\u041c\u043e\u0436\u043d\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u0440\u043e\u0434\u043e\u0436\u0438\u0442\u044c, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0438 \u043c\u044b \u0432 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\epsilon\" alt=\"\\epsilon\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aa3\/d9b\/d92\/aa3d9bd9264f31dab47a1da4a0e63db3.svg\" width=\"8\" height=\"12\"\/>\u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u043a\u0438\u043d\u0443\u0442\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"r \\cdot log_{2}{M}\" alt=\"r \\cdot log_{2}{M}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/67a\/3ad\/c8f\/67a3adc8f43b023f5f095949a78261a4.svg\" width=\"76\" height=\"20\"\/> \u043a \u044d\u0442\u043e\u043c\u0443 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\epsilon\" alt=\"\\epsilon\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a44\/c49\/e2b\/a44c49e2bef19ea2e50c1eb158154dcf.svg\" width=\"8\" height=\"12\"\/>. \u0414\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u043d\u0435 \u0442\u0430\u043a\u0438\u0445 \u0433\u0440\u0430\u043d\u0434\u0438\u043e\u0437\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439 (<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n \\leq 2048\" alt=\"n \\leq 2048\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/222\/f10\/dbd\/222f10dbde5f15704e725b210ca0afe8.svg\" width=\"76\" height=\"19\"\/>),  <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\epsilon\" alt=\"\\epsilon\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e4f\/1d0\/a33\/e4f1d0a3386086b0bf705d0de6ff1e15.svg\" width=\"8\" height=\"12\"\/> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c. \u042f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043d\u0430 70.<\/p>\n<h3>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c<\/h3>\n<p>\u041a\u0440\u0443\u0442\u0438\u043c \u0434\u0432\u0430 \u0446\u0438\u043a\u043b\u0430: \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0446\u0438\u043a\u043b \u043f\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0447\u0438\u0441\u043b\u0430\u043c (<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i\" alt=\"a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bc1\/a9f\/061\/bc1a9f061dd95529f91f91108a5a00f6.svg\" width=\"17\" height=\"15\"\/>), \u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"f_i\" alt=\"f_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b6a\/4e5\/d9f\/b6a4e5d9f23d3b5056fa5f44ae1622ac.svg\" width=\"16\" height=\"20\"\/>. \u0421\u0440\u0430\u0437\u0443 \u0436\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e &#8212; \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b\u043e\u0432 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u0446\u0438\u043a\u043b\u0430, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043a\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u044b: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A_k = (A_{k-1} \\cdot (2k - 1)) \\bmod m\" alt=\"A_k = (A_{k-1} \\cdot (2k - 1)) \\bmod m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d3a\/910\/f6d\/d3a910f6d8ddd0f92dc1f964c2cb0af7.svg\" width=\"251\" height=\"22\"\/> \u0438<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"b_k = (b_{k-1} \\cdot k) \\bmod m\" alt=\"b_k = (b_{k-1} \\cdot k) \\bmod m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/61a\/632\/62b\/61a63262b91fdff7cdebb9165b7d41de.svg\" width=\"181\" height=\"22\"\/>. \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u043c\u044b \u0441\u0440\u0430\u0437\u0443 \u0434\u0435\u043b\u0438\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A_k\" alt=\"A_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/886\/5f7\/54d\/8865f754d1ff006d1bf6d096c640db4d.svg\" width=\"23\" height=\"20\"\/>\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"b_k\" alt=\"b_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/27b\/7dd\/659\/27b7dd659c61f69fd1abcee38c2ebee1.svg\" width=\"17\" height=\"20\"\/>\u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0447\u0438\u0441\u043b\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i\" alt=\"a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/de8\/9aa\/8fb\/de89aa8fb4f1624f85fd0b7125de6215.svg\" width=\"17\" height=\"15\"\/>\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v_{i, k}\" alt=\"v_{i, k}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c75\/656\/881\/c75656881b10a53d67e24433ccc254a7.svg\" width=\"27\" height=\"17\"\/>\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"u_{i, k}\" alt=\"u_{i, k}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/256\/9c0\/25f\/2569c025fa382f575147c6caf85fbba6.svg\" width=\"29\" height=\"17\"\/>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i\" alt=\"a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cf8\/247\/2ff\/cf82472ff8b8a3d6caf8ce8432803229.svg\" width=\"17\" height=\"15\"\/>\u0432 \u043d\u0443\u0436\u043d\u0443\u044e \u0441\u0442\u0435\u043f\u0435\u043d\u044c.<\/p>\n<p><img class=\"formula\" source=\"\\begin{align*}&amp;\\begin{aligned}&amp;N&amp;&amp;=\\lfloor(n+\\epsilon) \\cdot log_{2}{10}\\rfloor\\\\&amp;D_n&amp;&amp;=0\\\\\\end{aligned}\\\\&amp;for\\:(a \\in \\mathbb{P} | 2 &lt; a &lt;2N)\\:\\{\\\\&amp;\\quad\\begin{aligned}&amp;vmax &amp;&amp;=\\lfloor \\log_{a}{2N} \\rfloor \\\\&amp;m&amp;&amp;=a^{vmax}\\\\&amp;v&amp;&amp;=0\\\\&amp;u&amp;&amp;=0\\\\&amp;f&amp;&amp;=0\\\\&amp;A&amp;&amp;=1\\\\&amp;b&amp;&amp;=1\\\\\\end{aligned}\\\\&amp;\\quad for\\:(k=2..N)\\:\\{\\\\&amp;\\quad\\quad\\begin{aligned}&amp;b &amp;&amp;= \\left( \\frac{k}{a^{v(a,k)}} \\cdot b \\right) \\bmod m\\\\&amp;A &amp;&amp;= \\left( \\frac{2k-1}{a^{v(a,2k-1)}} \\cdot A \\right) \\bmod m\\\\&amp;u &amp;&amp;= u + v(a, k)\\\\&amp;v &amp;&amp;= v + v(a, 2k-1)\\\\\\end{aligned}\\\\&amp;\\quad\\quad if\\:(v - u > 0)\\:\\{\\\\&amp;\\quad\\quad\\quad f = (f + k \\cdot b \\cdot A^{-1} \\cdot a^{vmax-v+u}) \\bmod m\\\\&amp;\\quad\\quad \\}\\\\&amp;\\quad \\}\\\\&amp;\\quad\\begin{aligned}&amp;d&amp;&amp;=(f \\cdot 10^n) \\bmod m\\\\&amp;D&amp;&amp;=\\left\\{ D + \\frac{d}{m} \\right\\} \\\\\\end{aligned}\\\\&amp;\\}\\end{align*}&#187; alt=&#187;\\begin{align*}&amp;\\begin{aligned}&amp;N&amp;&amp;=\\lfloor(n+\\epsilon) \\cdot log_{2}{10}\\rfloor\\\\&amp;D_n&amp;&amp;=0\\\\\\end{aligned}\\\\&amp;for\\:(a \\in \\mathbb{P} | 2 &lt; a &lt;2N)\\:\\{\\\\&amp;\\quad\\begin{aligned}&amp;vmax &amp;&amp;=\\lfloor \\log_{a}{2N} \\rfloor \\\\&amp;m&amp;&amp;=a^{vmax}\\\\&amp;v&amp;&amp;=0\\\\&amp;u&amp;&amp;=0\\\\&amp;f&amp;&amp;=0\\\\&amp;A&amp;&amp;=1\\\\&amp;b&amp;&amp;=1\\\\\\end{aligned}\\\\&amp;\\quad for\\:(k=2..N)\\:\\{\\\\&amp;\\quad\\quad\\begin{aligned}&amp;b &amp;&amp;= \\left( \\frac{k}{a^{v(a,k)}} \\cdot b \\right) \\bmod m\\\\&amp;A &amp;&amp;= \\left( \\frac{2k-1}{a^{v(a,2k-1)}} \\cdot A \\right) \\bmod m\\\\&amp;u &amp;&amp;= u + v(a, k)\\\\&amp;v &amp;&amp;= v + v(a, 2k-1)\\\\\\end{aligned}\\\\&amp;\\quad\\quad if\\:(v &#8212; u > 0)\\:\\{\\\\&amp;\\quad\\quad\\quad f = (f + k \\cdot b \\cdot A^{-1} \\cdot a^{vmax-v+u}) \\bmod m\\\\&amp;\\quad\\quad \\}\\\\&amp;\\quad \\}\\\\&amp;\\quad\\begin{aligned}&amp;d&amp;&amp;=(f \\cdot 10^n) \\bmod m\\\\&amp;D&amp;&amp;=\\left\\{ D + \\frac{d}{m} \\right\\} \\\\\\end{aligned}\\\\&amp;\\}\\end{align*}&#187; src=&#187;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f40\/1f2\/a93\/f401f2a93f5c86fc4f6d9ec4c2fea869.svg&#187; width=&#187;389&#8243; height=&#187;643&#8243;\/><\/p>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435, \u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043d\u0430 JS:<\/p>\n<pre><code class=\"javascript\">const getNinePiDigits = (n) => {   const N = Math.trunc((n + 20) * Math.log(10) \/ Math.log(2));    let digits = 0;   for (const a of primes.filter((prime) => prime > 2 &amp;&amp; prime &lt; 2 * N)) {     const vmax = Math.trunc(Math.log(2 * N) \/ Math.log(a));     const m = a ** vmax;      let f = 0, A = 1, b = 1, v = 0, u = 0;     for (let k = 2; k &lt;= N; k++) {       b = (b * (k \/ (a ** multiplicity(a, k)))) % m;       A = (A * ((2 * k - 1) \/ (a ** multiplicity(a, 2 * k - 1)))) % m;       u += multiplicity(a, k);       v += multiplicity(a, 2 * k - 1);       if (v - u > 0) {         f = (f + (k * b * modularInverse(A, m) * (a ** (vmax - v + u)))) % m;       }     }      d = (f * modularPower(10, n, m)) % m;     digits = (digits + (d \/ m)) % 1;   }    return Math.trunc(digits * 1e9).toString().padStart(9, '0'); }; <\/code><\/pre>\n<h2>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/h2>\n<p>\u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c (\u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <a href=\"https:\/\/habr.com\/ru\/articles\/660171\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0448\u043b\u044b\u0439 <\/a>\u043f\u0440\u043e\u0435\u043a\u0442) \u043c\u043d\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0447\u0442\u043e-\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0435, \u0447\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u0434. \u041d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u0441\u0451 \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u0422\u0430\u043a \u0447\u0442\u043e \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c <a href=\"https:\/\/github.com\/markablov\/i40xx\" rel=\"noopener noreferrer nofollow\">\u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/a>.<\/p>\n<h3>\u041f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440<\/h3>\n<p>\u041e\u0442 \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u044f \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0432\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0441\u0442\u0438 &#8212; \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u044b<\/p>\n<\/li>\n<\/ul>\n<p>\u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0435\u0441\u0442\u044c \u0443 \u043d\u0430\u0441 \u043c\u043e\u0434\u0443\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>foo<\/code> (<code>foo.i4040<\/code>):<\/p>\n<pre><code class=\"assembly\">%define FOO_PARAM1_VAL1 0x5 %define FOO_PARAM1_VAL2 0xA %define FOO_PARAM2_VAL1 D  foo:   ...   BBL 0 <\/code><\/pre>\n<p>\u0410 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043c\u043e\u0434\u0443\u043b\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e:<\/p>\n<pre><code class=\"assembly\">%include \"foo.i4040\"  bar:   FIM r0, $FOO_PARAM1_VAL1 . $FOO_PARAM2_VAL1   JMS foo   FIM r0, $FOO_PARAM1_VAL2 . 0   JMS foo   BBL 0 <\/code><\/pre>\n<p>\u041c\u0430\u043a\u0440\u043e\u0441\u044b \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u042f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043f\u0435\u0440\u0435\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432 RAM (\u0441\u043a\u0430\u0436\u0435\u043c, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u0438\u043b\u043e\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"N\" alt=\"N\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/750\/b4c\/de0\/750b4cde0f4ef0b4cd79bc08d5879aa9.svg\" width=\"17\" height=\"17\"\/>, \u043c\u043e\u0433\u043b\u0430 \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 RAM \u0441 #5 \u043d\u0430 #9). \u0411\u0435\u0437 \u044d\u0442\u043e\u0439 \u0444\u0438\u0447\u0438, \u043c\u043d\u0435 \u0431\u044b \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0438\u0441\u043a\u0430\u0442\u044c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0438 \u0434\u0443\u043c\u0430\u0442\u044c \u043e \u0442\u043e\u043c, \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043b\u0438 \u043e\u043d\u043e \u043a \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430.<\/p>\n<h3>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a<\/h3>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0431\u044b\u043b\u0430 \u0431\u0435\u0441\u0445\u0438\u0442\u0440\u043e\u0441\u0442\u043d\u043e\u0439 &#8212; \u0431\u0435\u0440\u0451\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043e\u0434\u043d\u0443 \u0437\u0430 \u043e\u0434\u043d\u043e\u0439, \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u0435\u043c \u0438\u0445 \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u041f\u0417\u0423. \u0417\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u044d\u0442\u0430\u043f\u043e\u043c \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043f\u043e \u043c\u0435\u0442\u043a\u0430\u043c. \u041c\u044b \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u0435\u0442\u043a\u0430 \u043c\u043e\u0433\u043b\u0430 \u0431\u044b\u0442\u044c \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0437\u0436\u0435, \u0447\u0435\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u0443 \u043c\u0435\u0442\u043a\u0443. \u041e\u0434\u043d\u0430\u043a\u043e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 4004\/4040 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u043c\u0438 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430:<\/p>\n<ul>\n<li>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438, \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u043e\u0439 \u0436\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u041f\u0417\u0423 (\u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 0x100 \u0431\u0430\u0439\u0442), \u0433\u0434\u0435 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0430 \u0441\u0430\u043c\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>0x2AA<\/code> \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 <code>0x255<\/code>, \u043d\u043e \u043d\u0435 \u043d\u0430 <code>0x655<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u043a\u0438\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u0438\u043c\u0435\u044e\u0442 \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c &#8212; \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0431\u0430\u0439\u0442\u0430\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u041f\u0417\u0423, \u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043d\u0435 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439, \u0430 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>0x7FF<\/code> \u0438\u043b\u0438 <code>0x7FE<\/code>, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0430\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 <code>0x7BB<\/code>  \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0441\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 <code>0x8BB<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u043b \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 (\u043a\u043e\u0433\u0434\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 ROM, \u043d\u043e \u0441\u0441\u044b\u043b\u0430\u043b\u0430\u0441\u044c \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435) \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0436\u043e\u043d\u0433\u043b\u0438\u0440\u0443\u044f \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u043c\u0438 \u043a\u043e\u0434\u0430, \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b \u0441\u0435\u0440\u0438\u044e<code>NOP<\/code> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043f\u043b\u0430\u0442\u043e\u043a \u0434\u043b\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u041a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u043d\u043e \u043a\u043e\u0434 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u0432\u0441\u0451 \u043e\u0431\u044a\u0435\u043c\u043d\u0435\u0435 \u0438 \u043e\u0431\u044a\u0435\u043c\u043d\u0435\u0435, \u0438 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430 \u0434\u043b\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0430\u0441\u044c \u0432 \u043a\u043e\u0448\u043c\u0430\u0440.<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0430\u043a\u043e\u043f\u0438\u043b\u043e\u0441\u044c \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0436\u0435\u043b\u0430\u043d\u0438\u0439 \u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u0432\u0443\u0445 \u0431\u0430\u043d\u043a\u043e\u0432 \u041f\u0417\u0423. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0430\u0437\u0431\u0443\u0445\u0430\u043b\u0430, \u0438 \u044f \u043e\u043f\u0430\u0441\u0430\u043b\u0441\u044f, \u0447\u0442\u043e \u043d\u0435 \u0443\u043b\u043e\u0436\u0443\u0441\u044c \u0432 4 \u041a\u0438\u0411.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043f\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u043c.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u044e\u0441\u044c \u043d\u0430 \u044d\u0442\u0438\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.<\/p>\n<p>\u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u0440\u0430\u043d\u0435\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b, \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043c\u0435\u0436\u0434\u0443 \u0431\u0430\u043d\u043a\u0430\u043c\u0438 ROM \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430, \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438:<\/p>\n<pre><code class=\"assembly\">__location(0x0:0x00) entrypoint:   JMS output   DB1   JMS foo   HLT  output:   LDM 0xF   WMP   BBL 0  __rom_bank(0x1) foo:   JMS output   DB0   NOP   BBL 0 <\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p><code>entrypoint<\/code> \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0431\u0430\u043d\u043a\u0435, \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>0x000<\/code>. \u0418 \u043e\u0442\u0441\u044e\u0434\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043a\u043e\u0434 \u043f\u043e\u0441\u043b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0441\u0431\u0440\u043e\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p><code>foo<\/code> \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0431\u0430\u043d\u043a\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0431\u0435\u0440\u0435\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a.<\/p>\n<\/li>\n<li>\n<p>\u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>output<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u0434\u043e\u043c \u0432 \u043e\u0431\u043e\u0438\u0445 \u0431\u0430\u043d\u043a\u0430\u0445, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0435\u0451 \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <code>NOP<\/code> \u043f\u0435\u0440\u0435\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 <code>BBL<\/code> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0434\u043b\u044f \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u044b\u0445 \u0442\u0430\u0439\u043c\u0438\u043d\u0433\u043e\u0432. <code>DBx<\/code> \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0431\u0430\u043d\u043a \u041f\u0417\u0423 \u0447\u0435\u0440\u0435\u0437 2 \u0446\u0438\u043a\u043b\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0437\u0430 2 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u0430. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u043d\u0438\u0445, <code>BBL<\/code> \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0446\u0438\u043a\u043b, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 \u043d\u0443\u0436\u043d\u044b\u0439 \u0431\u0430\u043d\u043a \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u044b \u0445\u043e\u0442\u0438\u043c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0442\u043e\u0447\u043a\u0438 \u0432\u0445\u043e\u0434\u0430, \u043d\u043e \u0438 \u0434\u043b\u044f \u0446\u0435\u043b\u0435\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 &#8212; \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430. \u0412 ISA \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430<code>JIN rX<\/code> , \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u043e\u0439 \u043f\u0430\u0440\u0435 (8-\u0431\u0438\u0442). \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u044f \u043c\u043e\u0433\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u043a\u043e\u0434\u0430 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u0438\u0437\u0431\u0435\u0436\u0430\u0432 \u043a\u0443\u0447\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439. \u042f \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u044d\u0442\u043e\u0442 \u0442\u0440\u044e\u043a. \u0412\u043e\u0442, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0434\u0435\u043b\u0435\u043d\u0438\u044f 4-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043d\u0430 4-\u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e. \u0417\u0434\u0435\u0441\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f (1..15) \u0443 \u043c\u0435\u043d\u044f \u0441\u0432\u043e\u0439 \u0431\u043b\u043e\u043a \u043a\u043e\u0434\u0430.<\/p>\n<pre><code class=\"assembly\">__location(00:0x10) div4x4_1:   XCH rr12   LDM 0x0   XCH rr13   BBL 0  # INPUT: #   acc - dividend #   rr10 - divisor #   rr11 - 0x0 # OUTPUT: #   rr12 - quotient #   rr13 - reminder __location(00:0x18) div4x4:   JIN r5  __location(00:0x20) div4x4_2:   RAR   XCH rr12   TCC   XCH rr13   BBL 0  ...<\/code><\/pre>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0432\u0448\u0438\u0441\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0431\u043e\u043b\u0435\u0435 \u0438\u0437\u043e\u0449\u0440\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u044f \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043e\u0431\u0440\u0430\u0437 ROM:<\/p>\n<ol>\n<li>\n<p>\u041f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440<\/p>\n<\/li>\n<li>\n<p>\u041f\u0430\u0440\u0441\u0438\u043d\u0433 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0438. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434 \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 (\u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438) \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0441\u044b\u043b\u043a\u0430\u0445 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438. \u0411\u043b\u043e\u043a\u043e\u043c \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u043a \u043e\u0434\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043e\u043d\u0438 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u0431\u0440\u043e\u0441\u0430\u043d\u044b \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043e\u0431\u0440\u0430\u0437\u0443 ROM, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u043d\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a\u0443. \u0411\u043b\u043e\u043a\u043e\u043c \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f \u043d\u0430\u0437\u044b\u0432\u0430\u044e \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u041a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u0438\u043b\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0442 \u0431\u043b\u043e\u043a. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1fe\/94d\/00c\/1fe94d00c26c36c53f324de5b3af5c8e.png\" alt=\"\u0411\u043b\u043e\u043a\u0438 \u0438 \u0438\u0445 \u0441\u0432\u044f\u0437\u0438\" title=\"\u0411\u043b\u043e\u043a\u0438 \u0438 \u0438\u0445 \u0441\u0432\u044f\u0437\u0438\" width=\"698\" height=\"449\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1fe\/94d\/00c\/1fe94d00c26c36c53f324de5b3af5c8e.png\"\/><\/p>\n<div><figcaption>\u0411\u043b\u043e\u043a\u0438 \u0438 \u0438\u0445 \u0441\u0432\u044f\u0437\u0438<\/figcaption><\/div>\n<\/figure>\n<\/li>\n<li>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u043b\u043e\u043a\u043e\u0432 \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0438\u0445 \u0441\u0432\u044f\u0437\u044f\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u043c \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043a\u0440\u0443\u043f\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b &#8212; \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432. \u042d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u0431\u043b\u043e\u043a\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u043c\u0438. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0445 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u0435 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u0438\u0439 \u0441 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u043c\u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435. \u0422\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u0431\u043b\u043e\u043a\u0438, \u0441\u0441\u044b\u043b\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b, \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0440\u0435\u0448\u0430\u044e\u0449\u0438\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0443\u044e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE%D0%B1_%D1%83%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B5_%D0%B2_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D1%8B\" rel=\"noopener noreferrer nofollow\">\u0437\u0430\u0434\u0430\u0447\u0443 \u043e\u0431 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0435 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b<\/a>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0430\u0448\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443 ROM, \u0434\u0430\u0436\u0435 \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e56\/7b7\/331\/e567b73314f9b3af3bccfb16a4591e85.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432, \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432, \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443\" width=\"210\" height=\"266\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e56\/7b7\/331\/e567b73314f9b3af3bccfb16a4591e85.png\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432, \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u043e\u0448\u0451\u043b \u043f\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u044f\u043c\u043e\u043b\u0438\u043d\u0435\u0439\u043d\u043e\u043c\u0443 \u043f\u0443\u0442\u0438 &#8212; \u0437\u0430\u0432\u0451\u043b \u043a\u0443\u0440\u0441\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043d\u0435\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0432 ROM, \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0434\u0432\u0438\u0433\u0430\u0435\u043c \u0432 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043a\u043e\u043d\u0446\u0430 \u043e\u0431\u0440\u0430\u0437\u0430. \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u044f \u043f\u044b\u0442\u0430\u044e\u0441\u044c \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0441\u0443\u043f\u0435\u0440-\u0431\u043b\u043e\u043a \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u043a\u0443\u0440\u0441\u043e\u0440\u043e\u043c, \u043e\u0442\u0434\u0430\u0432\u0430\u044f \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043a\u0440\u0443\u043f\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u043c. \u0415\u0441\u043b\u0438 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0443\u043f\u0435\u0440-\u0431\u043b\u043e\u043a \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0451\u043d (\u0441\u043a\u0430\u0436\u0435\u043c, \u043d\u0430\u0440\u0443\u0448\u0430\u044e\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b), \u0442\u043e \u0434\u0432\u0438\u0433\u0430\u0435\u043c \u043a\u0443\u0440\u0441\u043e\u0440 \u043d\u0430 1 \u0431\u0430\u0439\u0442 \u0432\u043f\u0435\u0440\u0451\u0434 \u0438 \u043e\u043f\u044f\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0431\u043b\u043e\u043a\u0438.<\/p>\n<p>\u0411\u043b\u043e\u043a\u0438, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a\u043e\u043c. \u041e\u043d \u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432 \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u043a\u0443\u0440\u0441\u043e\u0440 \u0432\u043f\u0435\u0440\u0451\u0434, \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0432\u043e\u0442\u043a\u043d\u0443\u0442\u044c \u043c\u0435\u043b\u043a\u0438\u0435 \u0431\u043b\u043e\u043a\u0438 \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u0435\u0436\u0434\u0443 \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u043c\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0445.<\/p>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0442\u0430\u0441\u043e\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0438\u0445 \u043f\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443.  \u0410 \u043e\u0434\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u043b\u043e\u043a\u043e\u0432 &#8212; \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0435\u0441\u044f\u0442\u043a\u0430. \u0418 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n!\" alt=\"n!\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/91f\/b59\/f88\/91fb59f887af456985fa0f58aae3f244.svg\" width=\"17\" height=\"17\"\/>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u0431 \u043d\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u044f \u043f\u0440\u043e\u0441\u0442\u043e-\u043d\u0430\u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a \u043a\u044d\u0448 &#8212; \u043a\u043b\u044e\u0447\u0451\u043c \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0443\u043f\u0435\u0440\u0431\u043b\u043e\u043a (\u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0445\u044d\u0448, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430), \u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u041f\u0417\u0423 \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u0442\u043e\u043c, \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043f\u043e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044e \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0443\u043f\u0435\u0440\u0431\u043b\u043e\u043a \u0438\u043b\u0438 \u043d\u0435\u0442.<\/p>\n<\/li>\n<\/ol>\n<h3>\u042d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0449\u0438\u043a<\/h3>\n<p>\u041d\u0435 \u0441\u0435\u043a\u0440\u0435\u0442, \u0447\u0442\u043e \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u0430 \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e. \u042f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0434\u043b\u044f i4004 \u0438 GUI \u043a \u043d\u0435\u043c\u0443, \u043d\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b:<\/p>\n<ul>\n<li>\n<p>\u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u043d\u043e \u0438 \u0438\u043c\u0435\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u0435\u0441\u0442\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0410\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u043e\u0434 4040: \u043d\u043e\u0432\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0431\u0430\u043d\u043a \u041f\u0417\u0423.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u043d\u0438\u043c\u043a\u043e\u0432 \u041e\u0417\u0423. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0436\u0438\u0434\u0430\u044e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0438\u0445 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u043a\u0430\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e, \u0442\u0430\u043a \u0438 \u0447\u0435\u0440\u0435\u0437 GUI) \u043d\u0443\u0436\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043d\u0438\u043c\u043e\u043a RAM.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u0411\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u0430\u0434\u0430\u0442\u044c, \u0447\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0437\u043a\u0438\u043c \u043c\u0435\u0441\u0442\u043e\u043c \u043d\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041f\u0440\u0438 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0444\u0438\u043b\u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u043c\u0430\u043d\u0434, \u043d\u043e \u0442\u0430\u043a\u0430\u044f \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043d\u0435 \u0431\u044b\u043b\u0430 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430, \u0438 \u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a, \u0442\u043e \u043c\u044b \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0438 \u043f\u0440\u044f\u043c\u043e\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0431\u0440\u0430\u0437\u0430 ROM. \u0420\u0430\u043d\u044c\u0448\u0435 \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u0430\u0434\u0440\u0435\u0441 \u0432 \u041f\u0417\u0423. \u0422\u0435\u043f\u0435\u0440\u044c \u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043a\u0430\u0440\u0442 \u043a\u043e\u0434\u0430 (source maps) \u0432 GUI \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<\/li>\n<li>\n<p>\u042d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0443\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b \u0442\u043e\u0447\u043a\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430, \u043d\u043e \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 &#8212; \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432 \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u043c \u0432\u0438\u0434\u0435. \u041c\u043d\u043e\u0433\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f 16-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438. \u0418\u043d\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445, \u0438 \u0431\u044b\u0432\u0430\u043b\u043e \u043d\u0435 \u0442\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u043e, \u0433\u043b\u044f\u0434\u044f \u043d\u0430 \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. \u0418\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 &#8212; \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432 \u041e\u0417\u0423. \u041d\u043e, \u0438\u043c\u0435\u044f \u043f\u043e\u043b\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0435\u0440\u0435\u0434 \u0433\u043b\u0430\u0437\u0430\u043c\u0438, \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0447\u043b\u0435\u043d\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/93a\/fd2\/fd9\/93afd2fd904ba1734750d0f1f8f32513.png\" alt=\"GUI \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\" title=\"GUI \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\" width=\"2836\" height=\"1704\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/93a\/fd2\/fd9\/93afd2fd904ba1734750d0f1f8f32513.png\"\/><\/p>\n<div><figcaption>GUI \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430<\/figcaption><\/div>\n<\/figure>\n<\/li>\n<\/ul>\n<h2>\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430<\/h2>\n<p>\u0415\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u0442\u043e \u043a \u0437\u0430\u0434\u0430\u0447\u0435 \u044f \u043f\u043e\u0434\u043e\u0448\u0451\u043b \u0440\u0430\u0441\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u043d\u043e. 70 \u0447\u0430\u0441\u043e\u0432? \u0417\u0432\u0443\u0447\u0438\u0442 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043a\u043e\u0434 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0441\u0442\u043e\u0438\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u043e\u0431\u0449\u0438\u0435 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c.<\/p>\n<h3>\u0420\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445<\/h3>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0443 \u043d\u0430\u0441 \u0447\u0438\u0441\u043b\u0430. \u041e\u0442 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438. \u041c\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043b\u0438 \u0438\u0441\u043a\u043e\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u0444\u0440 \u03c0 (<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7d3\/7a8\/9c2\/7d37a89c2ad5b7ae73b18f6544f5523d.svg\" width=\"12\" height=\"12\"\/>) \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u0435\u0439 \u0432 2043, \u0437\u043d\u0430\u0447\u0438\u0442 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"N\" alt=\"N\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2ed\/f1e\/10f\/2edf1e10f87bdf3e682c9bf3ec8dfc6c.svg\" width=\"17\" height=\"17\"\/>\u0443 \u043d\u0430\u0441 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 7000, \u0430 \u043c\u043e\u0434\u0443\u043b\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"m\" alt=\"m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a78\/5f9\/ed1\/a785f9ed1dd2b1d2618650c97de80492.svg\" width=\"17\" height=\"12\"\/>\u043c\u0435\u043d\u044c\u0448\u0435 14000. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0434 14-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \u0438 \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0435\u043c \u043d\u0430\u0448\u0443 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u043f\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443 (4 \u0431\u0438\u0442). \u0422\u043e \u0435\u0441\u0442\u044c, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 16-\u0431\u0438\u0442\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435.<\/p>\n<p>\u041d\u0430\u043f\u043e\u043c\u043d\u044e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 RAM \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441 Intel 40xx. \u0423 \u043d\u0430\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0434\u043e 8 \u0431\u0430\u043d\u043a\u043e\u0432 \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u043d\u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 16 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439: 16 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 4-\u0431\u0438\u0442\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0438 4 \u0441\u0442\u0430\u0442\u0443\u0441\u043d\u044b\u0445 4-\u0431\u0438\u0442\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u0430. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u0438\u043c\u0438 \u0434\u0432\u0443\u043c\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c\u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a \u043d\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438:<\/p>\n<pre><code class=\"assembly\">FIM r0, 0xF0   # loads 0xF0 to r0 SRC r0         # selects register F and main character 0 RDM            # loads the selected main character to the accumulator XCH rr2        # rr2 = accumulator FIM r0, 0xF1   # loads 0xF1 to r0 SRC r0         # selects register F and main character 1 RDM            # loads the selected main character to the accumulator ADD rr2        # accumulator = main character 0 + main character 1<\/code><\/pre>\n<p>\u0410 \u0432\u043e\u0442 \u043a \u0441\u0442\u0430\u0442\u0443\u0441\u043d\u044b\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <code>RDx<\/code> \/ <code>WRx<\/code>, \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u043c\u0435\u0440 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0435 RAM.<\/p>\n<pre><code class=\"assembly\">FIM r0, 0xF0  # loads 0xF0 to r0 SRC r0        # selects register F and main character 0 RD0           # loads status character 0 to the accumulator XCH rr2       # rr2 = accumulator RD1           # loads status character 1 to the accumulator ADD rr2       # accumulator = status character 0 + status character 1<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u043d\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c. \u0410 \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0445 \u0432\u0441\u0435\u0433\u043e 4, \u0442\u043e \u043d\u0430\u043c \u043f\u043e\u0432\u0435\u0437\u043b\u043e \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 16 \u0431\u0438\u0442 \u0438 \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u0431\u043e\u043b\u0435\u0435 &#171;\u0431\u044b\u0441\u0442\u0440\u043e\u0439&#187; \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>\u0417\u043d\u0430\u044f \u0432\u0435\u0440\u0445\u043d\u0438\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"N\" alt=\"N\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6f0\/d19\/21a\/6f0d1921a611b37db66ba99bcd843d28.svg\" width=\"17\" height=\"17\"\/>, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0447\u0438\u0441\u0435\u043b. \u041b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0430 \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u043f\u0435\u0440\u0435\u0434 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0432\u043e\u0439 \u043f\u0430\u0447\u043a\u043e\u0439 \u0446\u0438\u0444\u0440 \u03c0. \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u043c\u0435\u043d\u044c\u0448\u0438\u0445 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"2N\" alt=\"2N\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/808\/281\/2d5\/8082812d55f583df9c5a8ba408263344.svg\" width=\"27\" height=\"17\"\/>\u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 2000. \u041f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438\u0445 \u0432\u0441\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u043d\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u0445 \u0432 \u0432\u0438\u0434\u0435 \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b: \u0435\u0441\u043b\u0438 \u0431\u0438\u0442 \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/189\/0f4\/e0d\/1890f4e0dc43ec0f0555dfaee303b4cb.svg\" width=\"11\" height=\"12\"\/>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 1, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u044c, \u0447\u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/414\/e3e\/ffa\/414e3effaa14369d840a73f262c7b70e.svg\" width=\"11\" height=\"12\"\/>&#8212; \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0447\u0438\u0441\u043b\u043e. \u041d\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e 10240 \u0431\u0438\u0442 \u0432 RAM, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0447\u0438\u0441\u043b\u0430 \u0434\u043e 14000 (\u0432\u0435\u0440\u0445\u043d\u044f\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"2N\" alt=\"2N\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b71\/e74\/739\/b71e74739655ee1a8314d328eef235a4.svg\" width=\"27\" height=\"17\"\/>), \u043d\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0445\u0438\u0442\u0440\u0438\u0442\u044c &#8212; \u043c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0447\u0451\u0442\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 (\u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c 2), \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u0445 \u0438\u0437 \u043d\u0430\u0448\u0435\u0439 \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432\u043c\u0435\u0441\u0442\u043e 14000 \u0431\u0438\u0442 \u043d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e 7000.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B5%D1%88%D0%B5%D1%82%D0%BE_%D0%AD%D1%80%D0%B0%D1%82%D0%BE%D1%81%D1%84%D0%B5%D0%BD%D0%B0\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0448\u0435\u0442\u043e \u042d\u0440\u0430\u0442\u043e\u0441\u0444\u0435\u043d\u0430<\/a>.<\/p>\n<h3>\u041b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u044b \u0438 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430 \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439<\/h3>\n<p>\u0414\u0440\u0443\u0433\u0430\u044f \u0442\u0435\u043c\u0430 \u043d\u0430 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c &#8212; \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u044b. \u041c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"log_{2}{10}\" alt=\"log_{2}{10}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/659\/deb\/5eb\/659deb5ebd983bc77cec1c00f7152c65.svg\" width=\"52\" height=\"20\"\/> \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"N\" alt=\"N\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cc1\/702\/bb3\/cc1702bb3b9e119c403ab3ec2182b6ff.svg\" width=\"17\" height=\"17\"\/>. \u041a\u0430\u043a \u0432\u044b \u0443\u0436\u0435 \u043f\u043e\u043d\u044f\u043b\u0438, \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0430 \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a\u0430\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0434\u043b\u044f 4040. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0430\u0448\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e, \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\log_2{10}\\approx\\frac{93}{28}\" alt=\"\\log_2{10}\\approx\\frac{93}{28}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/048\/be7\/f2f\/048be7f2f8b9fb43c1d9bd533f915c38.svg\" width=\"108\" height=\"42\"\/>. \u041d\u0430\u043c \u0434\u043e\u043b\u0436\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0445\u0432\u0430\u0442\u0438\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u043c \u043d\u0435 \u0442\u0430\u043a \u0432\u0430\u0436\u043d\u043e \u0442\u043e\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043b\u0438\u0448\u044c \u0431\u044b \u043e\u043d\u043e \u0431\u044b\u043b\u043e \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u043c.<\/p>\n<p>\u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c \u044d\u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"log_{a}{2N}\" alt=\"log_{a}{2N}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/61e\/9c0\/f47\/61e9c0f474d4b2b5e977485fdb13de3f.svg\" width=\"60\" height=\"20\"\/>. \u041d\u043e, \u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043b\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0446\u0438\u043a\u043b <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v^{max} = \\max \\{v: a^v &lt; 2N\\}\" alt=\"v^{max} = \\max \\{v: a^v &lt; 2N\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/02d\/e17\/d59\/02de17d5933468ee3a8a5ef1c1e4e6d9.svg\" width=\"216\" height=\"22\"\/>.<\/p>\n<p>\u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0447\u0438\u0441\u043b\u0430 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438, \u043d\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D\" alt=\"D\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/310\/26c\/900\/31026c9001457e52d2b641afd4fd23f0.svg\" width=\"16\" height=\"17\"\/> \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0447\u0438\u0441\u043b\u0430. \u0414\u0430\u0431\u044b \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0443 \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u044f \u0438\u0437\u0431\u0440\u0430\u043b \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c &#8212; \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439: 1 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u043d\u0430 \u0446\u0435\u043b\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0438 15 \u0441\u043b\u043e\u0432 \u043d\u0430 \u0434\u0440\u043e\u0431\u043d\u0443\u044e. \u041d\u0430\u0448\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440 \u03c0 \u0432\u044b\u0434\u0430\u0451\u0442 \u043f\u043e 9 \u0446\u0438\u0444\u0440 \u0437\u0430 \u0440\u0430\u0437, \u043d\u043e \u0435\u0449\u0435 6 \u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u0438\u0437\u0431\u0435\u0436\u0430\u043d\u0438\u044f \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u0438 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f.<\/p>\n<h3>\u041c\u043e\u0434\u0443\u043b\u044c\u043d\u0430\u044f \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430<\/h3>\n<p>\u0412\u043e\u0437\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u043e\u0439 \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0438 \u043e\u0442\u0431\u0440\u0430\u043a\u043e\u0432\u0430\u043b \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434: \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e (\u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\/\u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c), \u0430 \u0443\u0436\u0435 \u0437\u0430\u0442\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"m\" alt=\"m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/10a\/485\/5ee\/10a4855ee35928d5ca3e06497b421fc6.svg\" width=\"17\" height=\"12\"\/>. \u0421\u0440\u0430\u0437\u0443 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438 \u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c.<\/p>\n<p>\u041d\u0430\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0438\u043a\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"(a \\cdot b) \\bmod m=(a \\bmod m \\cdot b \\bmod m) \\bmod m\" alt=\"(a \\cdot b) \\bmod m=(a \\bmod m \\cdot b \\bmod m) \\bmod m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/479\/e5b\/399\/479e5b399285029103e768724e942d71.svg\" width=\"377\" height=\"22\"\/><\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"f(x, y) = (a \\cdot b) \\bmod m\" alt=\"f(x, y) = (a \\cdot b) \\bmod m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/58c\/3de\/d38\/58c3ded38312b67012244c43ce218d42.svg\" width=\"192\" height=\"22\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"f(x, y) =    \\begin{cases}      0 &amp; \\text{if $b = 0$}\\\\      f(2 \\cdot a \\bmod m, b \/ 2) &amp; \\text{if $b$ is even}\\\\      (a + f(a, b - 1)) \\bmod m &amp; \\text{if $b$ is odd}\\\\    \\end{cases}\" alt=\"f(x, y) =    \\begin{cases}      0 &amp; \\text{if $b = 0$}\\\\      f(2 \\cdot a \\bmod m, b \/ 2) &amp; \\text{if $b$ is even}\\\\      (a + f(a, b - 1)) \\bmod m &amp; \\text{if $b$ is odd}\\\\    \\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3c2\/d20\/1e0\/3c2d201e0753567bed82a05c80935002.svg\" width=\"407\" height=\"70\"\/><\/p>\n<p>\u041f\u043e\u0445\u043e\u0436\u0430\u044f \u0438\u0434\u0435\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438 \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"a^b \\bmod m =    \\begin{cases}      1 &amp; \\text{if $b = 0$}\\\\      (a^\\frac{b}{2})^2 \\bmod m &amp; \\text{if $b$ is even}\\\\      ((a^\\frac{b-1}{2})^2 \\cdot a) \\bmod m &amp; \\text{if $b$ is odd}\\\\    \\end{cases}\" alt=\"a^b \\bmod m =    \\begin{cases}      1 &amp; \\text{if $b = 0$}\\\\      (a^\\frac{b}{2})^2 \\bmod m &amp; \\text{if $b$ is even}\\\\      ((a^\\frac{b-1}{2})^2 \\cdot a) \\bmod m &amp; \\text{if $b$ is odd}\\\\    \\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/246\/acd\/531\/246acd531ab4a9bd34585094b591e3ff.svg\" width=\"398\" height=\"83\"\/><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u044d\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e. \u041e\u0434\u043d\u0430\u043a\u043e, \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u0447\u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A\" alt=\"A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/94b\/996\/368\/94b996368b4657d23f0c6dda53e5edf9.svg\" width=\"14\" height=\"17\"\/>\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"m\" alt=\"m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5ee\/72a\/fad\/5ee72afad08e9e2cc01fc6642ebd6dc1.svg\" width=\"17\" height=\"12\"\/>\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%AD%D0%B9%D0%BB%D0%B5%D1%80%D0%B0_(%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D1%87%D0%B8%D1%81%D0%B5%D0%BB)\" rel=\"noopener noreferrer nofollow\">\u0442\u0435\u043e\u0440\u0435\u043c\u0443 \u042d\u0439\u043b\u0435\u0440\u0430<\/a>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"A^{\\phi(m)} \\equiv 1 \\pmod m\\\\A^{\\phi(m)-1} \\equiv A^{-1} \\pmod m\" alt=\"A^{\\phi(m)} \\equiv 1 \\pmod m\\\\A^{\\phi(m)-1} \\equiv A^{-1} \\pmod m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/734\/fd3\/daf\/734fd3daf2892410f3617f84d89c79d0.svg\" width=\"698\" height=\"58\"\/><\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"m = a^{vmax}\" alt=\"m = a^{vmax}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3b1\/18b\/166\/3b118b16653830d070c596158cc909bc.svg\" width=\"88\" height=\"18\"\/>, \u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u042d\u0439\u043b\u0435\u0440\u0430 \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"m\" alt=\"m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6e0\/9e9\/122\/6e09e91221e6001ea4992c1aa182777a.svg\" width=\"17\" height=\"12\"\/>\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0437-\u0434\u0432\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\phi(m) = \\phi(a^{vmax}) = a^{vmax} - a^{vmax - 1}\" alt=\"\\phi(m) = \\phi(a^{vmax}) = a^{vmax} - a^{vmax - 1}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8bf\/da3\/135\/8bfda31351347dccf1b9bc06f3f1514e.svg\" width=\"300\" height=\"25\"\/><\/p>\n<h3>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430<\/h3>\n<p>\u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u044b \u0431\u043b\u0438\u0437\u043a\u0438 \u043a \u043d\u0430\u0448\u0438\u043c \u0437\u0430\u0432\u0435\u0442\u043d\u044b\u043c 70 \u0447\u0430\u0441\u0430\u043c? \u0423\u0432\u044b, \u043e\u0447\u0435\u043d\u044c \u0438 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u043b\u0435\u043a\u0438 \u043e\u0442 \u043d\u0438\u0445. \u042f \u0434\u0430\u0436\u0435 \u043d\u0435 \u0434\u043e\u0436\u0434\u0430\u043b\u0441\u044f \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438, \u043d\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u044e \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u044b\u0445 800 \u0446\u0438\u0444\u0440 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438. \u0418 \u0443\u0432\u0438\u0434\u0435\u043b \u0443\u0436\u0430\u0441\u0430\u044e\u0449\u0438\u0435 <strong>14.5 \u043b\u0435\u0442<\/strong>. \u0427\u0442\u043e \u0436, \u0432\u0438\u0434\u0438\u043c\u043e \u043d\u0430\u043c\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u0434\u043e\u043b\u0433\u043e\u0435 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438&#8230;<\/p>\n<h2>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0439 \u044d\u0442\u043e \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e!<\/h2>\n<h3>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c<\/h3>\n<h4>&#171;\u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435&#187; \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f<\/h4>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u043e\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0435\u0431\u0440\u0438 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439, \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u043e\u043b\u0435\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u041e\u0441\u043e\u0431\u044b\u0445 \u0447\u0430\u044f\u043d\u0438\u0439 \u044f \u043d\u0435 \u043f\u0438\u0442\u0430\u043b, \u0438\u0431\u043e \u0424\u0430\u0431\u0440\u0438\u0441 \u0411\u0435\u043b\u043b\u0430\u0440 \u043e\u0447\u0435\u043d\u044c \u0442\u0430\u043b\u0430\u043d\u0442\u043b\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0438 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a, \u0438 \u0448\u0430\u043d\u0441\u044b, \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0439 \u0442\u0440\u044e\u043a, \u044f \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u043b \u043d\u0435\u0432\u044b\u0441\u043e\u043a\u043e. \u041d\u043e, \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043e\u043d \u0440\u0435\u0448\u0430\u043b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 &#8212; \u043d\u0430\u0439\u0442\u0438 \u0446\u0438\u0444\u0440\u0443 \u043d\u0430 n-\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432 \u0447\u0438\u0441\u043b\u0435 \u03c0, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u044f \u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u043d\u0430\u0439\u0442\u0438 n \u0446\u0438\u0444\u0440 \u0447\u0438\u0441\u043b\u0430 \u03c0. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043c\u044b \u0441\u0443\u043c\u0435\u0435\u043c \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438? \u0412 \u043f\u0430\u043c\u044f\u0442\u0438 \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u044d\u0448 &#8212; \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 300 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0441 16-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u041d\u0443\u0436\u043d\u043e \u0434\u0443\u043c\u0430\u0442\u044c \u0441\u0438\u043b\u044c\u043d\u0435\u0435.<\/p>\n<p>\u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u043e\u0441\u043e\u0437\u043d\u0430\u043b, \u0447\u0442\u043e \u0440\u0430\u0437 \u043f\u0440\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"f_i\" alt=\"f_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b2d\/51e\/f85\/b2d51ef852290f093a2759dbc95f57bc.svg\" width=\"16\" height=\"20\"\/>\u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u0447\u0435\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0438 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443, \u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"f_i\" alt=\"f_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9ba\/4a3\/37b\/9ba4a337bd618e4a617f53be8afaaeb9.svg\" width=\"16\" height=\"20\"\/>\u0434\u043b\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/85d\/181\/bb6\/85d181bb6babee7e78e7481dfb05712a.svg\" width=\"12\" height=\"12\"\/>\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432 \u03c0 (\u043c\u0435\u043d\u044c\u0448\u0438\u0445 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/98f\/e6a\/a76\/98fe6aa76f61829d5471efe890da3393.svg\" width=\"12\" height=\"12\"\/>). \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u043e\u0439 \u043f\u0430\u0447\u043a\u0438 \u0446\u0438\u0444\u0440 (<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/827\/04a\/b81\/82704ab81f84b16f97e93c7af414c9f0.svg\" width=\"12\" height=\"12\"\/>) \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u043c \u0446\u0438\u043a\u043b\u0435 \u043f\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0447\u0438\u0441\u043b\u0430\u043c.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"D =\\left\\{ D + \\frac{(f_i \\cdot 10^n) \\bmod m}{m} \\right\\}\" alt=\"D =\\left\\{ D + \\frac{(f_i \\cdot 10^n) \\bmod m}{m} \\right\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c23\/1a2\/447\/c231a2447ffa1fd26af3376afff130a5.svg\" width=\"256\" height=\"50\"\/><\/p>\n<p>\u0412 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u0435 \u043c\u044b \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"f_i\" alt=\"f_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b94\/9fd\/119\/b949fd1195ab0a8633248fd9a084602b.svg\" width=\"16\" height=\"20\"\/>\u0434\u043b\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n_{max}\" alt=\"n_{max}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b36\/403\/c3f\/b36403c3f1c681c7a534073a69f18dee.svg\" width=\"40\" height=\"15\"\/>, \u0442\u0430\u043a \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439. \u0414\u0430, \u043c\u044b \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D\" alt=\"D\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9f3\/a54\/ee3\/9f3a54ee3b70b1d17ff64fa09dfcbadd.svg\" width=\"16\" height=\"17\"\/>\u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n &lt; n_{max}\" alt=\"n &lt; n_{max}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/411\/c08\/56b\/411c0856b6b592aa83aaa67e41c1374d.svg\" width=\"78\" height=\"17\"\/>, \u043d\u043e \u0437\u0430\u0442\u043e \u043c\u044b \u043a\u0440\u0443\u0442\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u043d\u043e\u0437\u0430\u0442\u0440\u0430\u0442\u043d\u044b\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0446\u0438\u043a\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n_{max}\" alt=\"n_{max}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eac\/b0e\/8ec\/eacb0e8ec417ce130d8f7e3397be8919.svg\" width=\"40\" height=\"15\"\/>.<\/p>\n<p>\u041a\u0430\u043a \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435, <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D\" alt=\"D\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/558\/d6f\/20b\/558d6f20b530d667be794e4668a6e31a.svg\" width=\"16\" height=\"17\"\/>\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043a\u0430\u043a 16-\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e 8 \u0431\u0430\u0439\u0442 \u043f\u043e\u0434 \u043d\u0435\u0433\u043e. \u0415\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0446\u0438\u043a\u043b \u043f\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0447\u0438\u0441\u043b\u0430\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D_n\" alt=\"D_n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/381\/d81\/0f1\/381d810f15f25ec2b063bac3cdce6f24.svg\" width=\"26\" height=\"20\"\/>\u0441\u0440\u0430\u0437\u0443 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0446\u0438\u0444\u0440 \u0432 \u03c0, \u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e 1824 \u0431\u0430\u0439\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D_n\" alt=\"D_n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f67\/d98\/1f3\/f67d981f319d243d7ecfeaa81b35213a.svg\" width=\"26\" height=\"20\"\/>. \u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u043e 9 \u0446\u0438\u0444\u0440 \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a8e\/a4e\/c01\/a8ea4ec017a836b34a377410813e0c00.svg\" width=\"12\" height=\"12\"\/>, \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u043b\u044f 2048 \u0446\u0438\u0444\u0440 \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u044c 228 \u0440\u0430\u0437\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/698\/edd\/830\/698edd8308c0c5684ccff771fe947fb4.svg\" width=\"12\" height=\"12\"\/>&#8212; 0, 9, 18, &#8230; \u0410 228 * 8 \u0431\u0430\u0439\u0442 \u0438 \u0434\u0430\u044e\u0442 \u043d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 1824 \u0431\u0430\u0439\u0442. \u042d\u0442\u043e \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043e\u0431\u044a\u0451\u043c \u043f\u0430\u043c\u044f\u0442\u0438. \u041d\u043e \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u0432\u0441\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430 \u0434\u0432\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0430 &#8212; \u0432\u044b\u0434\u0430\u0434\u0438\u043c \u0446\u0438\u0444\u0440\u044b \u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 [0, 1026], \u0430 \u0437\u0430\u0442\u0435\u043c \u0441 [1026, 2052]. \u0422\u043e\u0433\u0434\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432 2 \u0440\u0430\u0437\u0430 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 &#8212; 912 \u0431\u0430\u0439\u0442, \u0447\u0442\u043e, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u041a\u043e\u0434 \u0434\u043b\u044f \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e:<\/p>\n<pre><code class=\"javascript\">    for (let i = 0; i &lt; digits.length; i++) {       d = (f * modularPower(10, startingPosition + i * 9, m)) % m;       digits[i] = (digits[i] + (d \/ m)) % 1;     }<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435, \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u044e\u0449\u0435\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0432 <strong>85 \u0440\u0430\u0437<\/strong>, \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0444\u0438\u043d\u0438\u0448\u0438\u0440\u0443\u0435\u0442 \u0437\u0430 64 \u0434\u043d\u044f \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043b\u0435\u0442. \u041d\u043e \u043d\u0430\u043c \u0432\u0441\u0451 \u0435\u0449\u0451 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0432 20 \u0440\u0430\u0437!<\/p>\n<h4>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0447\u0438\u0441\u043b\u0430\u043c<\/h4>\n<p>\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u0432\u0435\u0434\u0435\u043d\u0430 \u043f\u043e\u0434<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D_n\" alt=\"D_n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cc2\/d8f\/48f\/cc2d8f48f919df77496d2d492ad31e6c.svg\" width=\"26\" height=\"20\"\/>, \u043d\u043e \u0443 \u043d\u0430\u0441 \u0436\u0435 \u0442\u0430\u043c \u043b\u0435\u0436\u0438\u0442 \u0431\u0438\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0447\u0438\u0441\u0435\u043b. \u041a\u0430\u043a \u0436\u0435 \u0432\u0441\u0451 \u044d\u0442\u043e \u0443\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u0435?<\/p>\n<p>\u0412\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e &#8212; \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u0442\u0430 \u042d\u0440\u0430\u0442\u043e\u0441\u0444\u0435\u043d\u0430 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B5%D1%88%D0%B5%D1%82%D0%BE_%D0%AD%D1%80%D0%B0%D1%82%D0%BE%D1%81%D1%84%D0%B5%D0%BD%D0%B0#%D0%A1%D0%B5%D0%B3%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D1%80%D0%B5%D1%88%D0%B5%D1%82%D0%BE\" rel=\"noopener noreferrer nofollow\">\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435<\/a>. \u0423 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u043c\u0435\u043d\u044c\u0448\u0438\u0445 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\sqrt{2N}\" alt=\"\\sqrt{2N}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ff7\/059\/e89\/ff7059e89d26bcd78a5f323c178c1aee.svg\" width=\"43\" height=\"23\"\/>(\u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u043a \u0434\u043b\u0438\u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430). \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u0437\u0430\u0432\u0435\u0434\u0451\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0442\u043e\u0439 \u0436\u0435 \u0434\u043b\u0438\u043d\u044b, \u0438 \u043f\u043e \u043d\u0430\u0434\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0435\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442.<\/p>\n<p>\u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0451\u043c \u043e\u0446\u0435\u043d\u043a\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0414\u043b\u0438\u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u0443 \u043d\u0430\u0441 118, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u043a\u0438\u043d\u0443\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0439\u043c\u0451\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442. \u041a\u0430\u0436\u0434\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 1 \u0431\u0430\u0439\u0442, \u0438 \u0432\u0441\u0435\u0433\u043e \u0443 \u043d\u0430\u0441 \u043e\u043a\u043e\u043b\u043e 30 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u043c\u0435\u043d\u044c\u0448\u0438\u0445 118. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u0430\u043c \u0445\u0432\u0430\u0442\u0438\u0442 \u0432\u0441\u0435\u0433\u043e 30 \u0431\u0430\u0439\u0442 \u043f\u043e\u0434 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<p>\u041f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e, \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0432\u044b\u043c \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u0434\u043b\u0438\u043d\u0443 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430. \u0417\u043d\u0430\u0447\u0438\u0442, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0442\u0435\u0443\u0449\u0435\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u0432 \u0432\u0435\u0441\u044c\u043c\u0430 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0439 \u043c\u0430\u043d\u0435\u0440\u0435 &#8212; 16-\u0431\u0438\u0442\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 \u0438 \u0431\u0438\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u043d\u0430 59 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 (\u043d\u0430\u043c \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b \u0447\u0451\u0442\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430). \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0442\u043e\u0432 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430, \u0442\u043e \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e 32 \u0431\u0430\u0439\u0442\u0430.<\/p>\n<h4>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0434\u0440\u043e\u0431\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b<\/h4>\n<p>\u041c\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c BCD \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D\" alt=\"D\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/059\/b7e\/03d\/059b7e03de4c2a51a42eccf24026db31.svg\" width=\"16\" height=\"17\"\/> (\u0432 \u044d\u0442\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0447\u0438\u0441\u043b\u043e <code>1234<\/code> \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 <code>0x1234<\/code> , \u0430 \u043d\u0435 \u043a\u0430\u043a <code>0x4D2<\/code>) \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0437\u0434\u0443\u0442. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0434\u043b\u044f \u0434\u0440\u043e\u0431\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u0439. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0432 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D\" alt=\"D\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3ea\/967\/4a7\/3ea9674a7def71eb947b79bea1f80ae0.svg\" width=\"16\" height=\"17\"\/>\u0445\u0440\u0430\u043d\u0438\u043b\u043e\u0441\u044c \u0447\u0438\u0441\u043b\u043e, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"10^{15}\" alt=\"10^{15}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c55\/098\/d20\/c55098d20773b3b11f68ac23825fb8c5.svg\" width=\"35\" height=\"21\"\/>, \u0430 \u043c\u044b \u043c\u0435\u043d\u044f\u0435\u043c \u044d\u0442\u043e\u0442 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c \u043d\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"2^{50}\" alt=\"2^{50}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e9e\/38b\/c7e\/e9e38bc7ecbe70f39d01b847f76f340e.svg\" width=\"25\" height=\"21\"\/>.<\/p>\n<h4>\u0423\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0447\u0438\u0441\u0435\u043b<\/h4>\n<p>\u042f \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u0435\u0440\u0438\u043b \u0432 \u0442\u043e, \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u0430 \u0445\u0432\u0430\u0442\u0438\u0442 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u0434\u0442\u0438 \u043f\u0435\u0440\u0432\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043b \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u0418 \u0432\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043f\u043e\u0434\u043c\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u0445 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\sqrt{2N}\" alt=\"\\sqrt{2N}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9f6\/343\/1ef\/9f63431ef927bb6dea312f83c96f2d33.svg\" width=\"43\" height=\"23\"\/>, \u0438\u0445 \u043a\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u0432 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A_k\" alt=\"A_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7a2\/ab1\/cd2\/7a2ab1cd223036acb2d9bd5cc7f561fb.svg\" width=\"23\" height=\"20\"\/>\u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 1 (<img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v^{max} = 1\" alt=\"v^{max} = 1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b22\/2f3\/38b\/b222f338b9ac0558fa05eb818c11e57b.svg\" width=\"74\" height=\"18\"\/>). \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u0435-\u043a\u0430\u043a\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v - u\" alt=\"v - u\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d8c\/c4a\/d0f\/d8cc4ad0ffc3263a2d80354420d62d0e.svg\" width=\"44\" height=\"16\"\/> \u0438\u043c\u0435\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u0443\u044e \u043f\u0440\u0438\u0440\u043e\u0434\u0443 \u0438 \u0447\u0435\u0440\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 0 \u0438 1. \u0418 \u043c\u044b \u0434\u0430\u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043f\u0435\u0440\u0438\u043e\u0434\u044b \u0447\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v - u\" alt=\"v - u\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a5e\/287\/cfa\/a5e287cfabe4cfe97fd3dd73ddcd243e.svg\" width=\"44\" height=\"16\"\/> \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1, \u043a\u043e\u0433\u0434\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i | 2k-1\" alt=\"a_i | 2k-1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/711\/08c\/469\/71108c4696ed0378b7860907a96f35a0.svg\" width=\"75\" height=\"22\"\/>, \u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a 0 \u043f\u0440\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i | k\" alt=\"a_i | k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5c4\/94b\/394\/5c494b3941f7e1d80f1c593d8eb14dad.svg\" width=\"32\" height=\"22\"\/>. \u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0442\u0430\u043a\u043e\u0433\u043e \u0447\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/181\/cb8\/ece\/181cb8ece30fe5bf01382f91e0efd83d.png\" alt=\"\u0427\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 (v - u)\" title=\"\u0427\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 (v - u)\" width=\"759\" height=\"102\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/181\/cb8\/ece\/181cb8ece30fe5bf01382f91e0efd83d.png\"\/><\/p>\n<div><figcaption>\u0427\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 (v &#8212; u)<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u043e\u0434 \u0441\u0442\u0430\u043b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c, \u043d\u043e \u0437\u0430\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435.<\/p>\n<pre><code class=\"javascript\">  do {     \/\/ iterate until next k, that satisfies (2 * k - 1) % a === 0     for (; (2 * k - 1) % a !== 0; k++) {       b = (b * k) % a;       A = (A * (2 * k - 1)) % a;     }      \/\/ v becomes 1 here     b = (b * k) % a;     A = (A * ((2 * k - 1) \/ a)) % a;     f = (f + modularInverse(A, a) * b * k) % a;     k++;      \/\/ iterate until next k, that satisfies k % a === 0     for (; (k % a) !== 0; k++) {       b = (b * k) % a;       A = (A * (2 * k - 1)) % a;       f = (f + modularInverse(A, a) * b * k) % a;     }      \/\/ now v becomes 0     b = (b * (k \/ a)) % a;     A = (A * (2 * k - 1)) % a;     k++;   } while (k &lt;= N);<\/code><\/pre>\n<p>\u0412 \u043d\u0451\u043c \u043c\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u043b\u0438 \u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0435\u043f\u043d\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i\" alt=\"a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7f4\/b8d\/aed\/7f4b8daedf68ca63199216188c49a94a.svg\" width=\"17\" height=\"15\"\/>\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439, \u043d\u043e \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0440 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u0414\u0435\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u0436\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u043c. \u0415\u0441\u043b\u0438 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c\u0441\u044f \u043a \u0446\u0438\u043a\u043b\u0443, \u0442\u043e \u0448\u0430\u0433\u043e\u043c \u0446\u0438\u043a\u043b\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0447\u0438\u0441\u043b\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a\" alt=\"a\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/489\/93a\/1fb\/48993a1fb1c8c96a6444e8575f8cad9d.svg\" width=\"10\" height=\"12\"\/>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0446\u0438\u043a\u043b\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>k \/ a<\/code>\u0438 <code>(2 * k - 1) \/ a<\/code> \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0446\u0438\u043a\u043b\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 1 \u0438 \u043d\u0430 2, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0426\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<li>\n<p>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0438 \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"b_k\" alt=\"b_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/177\/e0e\/a60\/177e0ea60d6088a9bb51bd586870baf6.svg\" width=\"17\" height=\"20\"\/>\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A_k\" alt=\"A_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/728\/a1c\/e61\/728a1ce614256a5b3054b1b19250d5b8.svg\" width=\"23\" height=\"20\"\/>\u0443\u0436\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0432\u044b\u0447\u0435\u0442\u043e\u0432 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a\" alt=\"a\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2f6\/24c\/afd\/2f624cafd9520ff1c104b65ebbd3fe73.svg\" width=\"10\" height=\"12\"\/>. \u0422\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u043c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0438 \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0442\u0435\u043b\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u043e\u0434-\u0446\u0438\u043a\u043b \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u044f, \u043a\u043e\u0433\u0434\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v - u = 0\" alt=\"v - u = 0\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c1f\/778\/bd8\/c1f778bd889af17474820b5bddbc91af.svg\" width=\"79\" height=\"17\"\/>. \u0418 \u043c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434-\u0446\u0438\u043a\u043b\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"k \\bmod a = 1\" alt=\"k \\bmod a = 1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ba3\/345\/163\/ba3345163d23f1f2e96143f7723ac10c.svg\" width=\"103\" height=\"17\"\/>, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0439: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"b_k \\cdot 1 \\cdot 2 \\cdot 3 ...\" alt=\"b_k \\cdot 1 \\cdot 2 \\cdot 3 ...\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/00a\/7be\/959\/00a7be9591029683e3e1dbca11e8fa17.svg\" width=\"111\" height=\"20\"\/>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u044d\u0442\u043e\u0442 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0434\u043e \u0432\u0445\u043e\u0434\u0430 \u0432 \u0446\u0438\u043a\u043b:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"b_{v=0} = (\\frac{a - 1}{2} + 1)! \\bmod a\" alt=\"b_{v=0} = (\\frac{a - 1}{2} + 1)! \\bmod a\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/98e\/fc0\/c93\/98efc0c936a5067be09b266538fc7099.svg\" width=\"221\" height=\"42\"\/><\/li>\n<\/ul>\n<p>\u0414\u0435\u043b\u0430\u0435\u043c \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u043d\u044b\u0439 \u043a\u043e\u0434 \u0435\u0449\u0435 \u043c\u0435\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c.<\/p>\n<pre><code class=\"javascript\">  let multiplierForZeroV = factorial(((a - 1) \/ 2) + 1) % a;   let k = ((a - 1) \/ 2) + 1;   let reducedCoefA = 3;    do {     \/\/ iterate until next k, that satisfies (2 * k - 1) % a === 0     for (reducedCoefB = 2; reducedCoefB &lt;= (a - 1) \/ 2; reducedCoefB++) {       A = (A * reducedCoefA) % a, reducedCoefA += 2;     }     b = (b * multiplierForZeroV) % a;      \/\/ v becomes 1 here     A = (A * multiplierA) % a, multiplierA += 2;     f = (f + modularInverse(A, a) * b * reducedCoefB) % a;     k++, reducedCoefB++;      \/\/ iterate until next k, that satisfies k % a === 0     reducedCoefA = 2;     for (; reducedCoefB &lt; a; k++, reducedCoefB++) {       A = (A * reducedCoefA) % a, reducedCoefA += 2;       b = (b * reducedCoefB) % a;       f = (f + modularInverse(A, a) * b * reducedCoefB) % a;     }      \/\/ have a check of the loop boundary now to avoid redundant first loop     k += (a + 1) \/ 2;      \/\/ now v becomes 0     b = (b * multiplierB) % a, multiplierB++;     A = (A * reducedCoefA) % a, reducedCoefA += 2;      \/\/ try to keep the factor lower than \"a\"     if (reducedCoefA > a) {       \/\/ factor is incremented by 2, so it could be bigger than \"a\" just by 1       reducedCoefA = 1;     } else {       A = (A * reducedCoefA) % a;       reducedCoefA += 2;     }   } while (k &lt;= N);<\/code><\/pre>\n<p>\u042d\u0442\u043e \u0431\u044b\u043b\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435, \u043d\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0437\u0440\u043e\u0441\u043b\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u044f \u043d\u0443\u0436\u0434\u0430\u043b\u0441\u044f \u0432 \u0442\u044b\u0441\u044f\u0447\u0430\u0445. \u0427\u0442\u043e \u0436\u0435, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<h4>\u041f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h4>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e, \u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u0443\u0437\u043a\u043e\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u043a\u043e\u0434\u0430. \u0410\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0444\u0430\u0439\u043b\u0435\u0440 \u0434\u043b\u044f \u0432\u044b\u0434\u0430\u0447\u0438 \u0442\u0440\u0430\u0441\u0441, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 <a href=\"https:\/\/github.com\/brendangregg\/FlameGraph\" rel=\"noopener noreferrer nofollow\">flamegraph<\/a> \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ed9\/915\/8f0\/ed99158f04257dab9e92f94e2bba71b9.png\" alt=\"\u041f\u0435\u0440\u0432\u044b\u0439 \u0444\u043b\u0435\u0439\u043c\u0433\u0440\u0430\u0444\" title=\"\u041f\u0435\u0440\u0432\u044b\u0439 \u0444\u043b\u0435\u0439\u043c\u0433\u0440\u0430\u0444\" width=\"1900\" height=\"294\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ed9\/915\/8f0\/ed99158f04257dab9e92f94e2bba71b9.png\"\/><\/p>\n<div><figcaption>\u041f\u0435\u0440\u0432\u044b\u0439 \u0444\u043b\u0435\u0439\u043c\u0433\u0440\u0430\u0444<\/figcaption><\/div>\n<\/figure>\n<h3>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0444\u043b\u0435\u0439\u043c\u0433\u0440\u0430\u0444\u0430, \u0441\u0440\u0430\u0437\u0443 \u0441\u0442\u0430\u043b\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043a\u0430\u043a\u0430\u044f \u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0437\u043a\u0438\u043c \u043c\u0435\u0441\u0442\u043e\u043c. \u0421\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, &#171;\u0431\u044b\u0441\u0442\u0440\u0430\u044f&#187; \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u0442\u0435\u043e\u0440\u0435\u043c\u0435 \u042d\u0439\u043b\u0435\u0440\u0430, \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043d\u0435 \u0442\u0430\u043a\u043e\u0439 \u0443\u0436 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0439. \u041d\u0430\u0431\u0440\u043e\u0441\u0430\u043b \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4%D0%B0#%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D1%85_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0%D1%85\" rel=\"noopener noreferrer nofollow\">\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0415\u0432\u043a\u043b\u0438\u0434\u0430<\/a> \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0432\u0435\u0441\u044c\u043c\u0430 \u043e\u0431\u043d\u0430\u0434\u0435\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u0446\u0438\u0444\u0440\u044b. \u0410 \u0437\u0430\u0442\u0435\u043c \u044f \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043b \u043f\u0440\u043e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D0%B8%D0%BD%D0%B0%D1%80%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%9D%D0%9E%D0%94\" rel=\"noopener noreferrer nofollow\">\u0431\u0438\u043d\u0430\u0440\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e<\/a> \u044d\u0442\u043e\u0433\u043e \u0436\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430. \u041a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u0434\u0430 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435, \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f:<\/p>\n<pre><code class=\"javascript\">const modularInverse = (a, m) => {   if (a === 1) {     return 1;   }    let rx = a, ry = m;   let v = 1, u = 0;    while (rx % 2 === 0) {     rx = rx >> 1;     v = (v % 2 === 0) ? (v >> 1) : (v + m) >> 1;   }    while (ry > 1) {     if (ry % 2 === 0) {       ry = ry >> 1;     } else {       if (ry &lt; rx) {         [rx, ry] = [ry, rx];         [v, u] = [u, v];       }       ry = (ry - rx) >> 1;       u = (u - v) % m;     }      u = (u % 2 === 0) ? (u >> 1) : ((u + m) >> 1);   }    return u &lt; 0 ? (u + m) : u; }<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u043f\u0440\u043e\u0448\u0451\u043b \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u0440\u043e\u0441\u0442\u043e. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u043d\u0430 \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u044d\u0442\u043e \u0442\u043e, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u043d\u0430\u043a\u043e\u0432\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0434\u0432\u0438\u0433\u0430 (\u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438). \u041d\u0430 \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u0435, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e:<\/p>\n<pre><code class=\"assembly\">  LD rr3       # load highest word of number   RAL          # put sign bit to carry to be able to shift negative numbers   LD rr3       # again load the highest word of the number   RAR          # shift it right, but because carry stores sign a bit                 # it would be propagated back to the highest bit of word   XCH rr3      # save updated word<\/code><\/pre>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u0448\u0443\u0441\u0442\u0440\u044b\u0435 <a href=\"https:\/\/www.researchgate.net\/publication\/304417579_Modular_Inverse_Algorithms_Without_Multiplications_for_Cryptographic_Applications\" rel=\"noopener noreferrer nofollow\">\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/a> \u044d\u0442\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043d\u043e \u043c\u043d\u0435 \u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0438\u0445 \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c.<\/p>\n<h3>\u041c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0435 \u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c<\/h3>\n<p>\u0412\u043e\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432 \u0434\u0432\u0443\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445: 1) <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"10^x\" alt=\"10^x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/406\/aeb\/d07\/406aebd07b6eb7e7c122815a2364be63.svg\" width=\"29\" height=\"17\"\/>\u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D_k\" alt=\"D_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/113\/b41\/787\/113b417876763f7c88a16ecaa27875d6.svg\" width=\"25\" height=\"20\"\/>\u0438 2) \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a^{v^{max} - v + u}\" alt=\"a^{v^{max} - v + u}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d73\/a82\/c41\/d73a82c416209e5d69e822d73de19358.svg\" width=\"75\" height=\"21\"\/>.<\/p>\n<p>\u041c\u044b \u0437\u043d\u0430\u0435\u043c \u0447\u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f1c\/66f\/ac3\/f1c66fac35d712915af0f523e4861a91.svg\" width=\"11\" height=\"12\"\/>\u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u0442 \u043e\u0442 0 \u0434\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8c3\/50c\/d96\/8c350cd9682af39b8acc700beb1cd8c7.svg\" width=\"12\" height=\"12\"\/>\u0441 \u0448\u0430\u0433\u043e\u043c \u0446\u0438\u043a\u043b\u0430 \u0432 9, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"10^x\" alt=\"10^x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/523\/26f\/fa4\/52326ffa4debc90c92a504f3ba508cc9.svg\" width=\"29\" height=\"17\"\/>\u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u0430 \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u0435\u0451 \u043d\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"10^9\" alt=\"10^9\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/141\/79b\/519\/14179b5199f6e061823b826544458d97.svg\" width=\"28\" height=\"21\"\/>. \u0422\u0430\u043a \u043c\u044b \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0442\u0440\u0435\u043c\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 (\u043d\u0430\u0448\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 16-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u043d\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"10^9\" alt=\"10^9\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/48a\/031\/374\/48a0313746106fbc36ffc5076e214c83.svg\" width=\"28\" height=\"21\"\/>\u0437\u0430 \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f):<\/p>\n<pre><code class=\"javascript\">  let powered10 = modularPower(10, startingPosition, m);     for (let i = 0; i &lt; digits.length; i++) {       const d = (powered10 * f) % m;       digits[i] = (digits[i] + (d \/ m)) % 1;       powered10 = (powered10 * 1000 * 1000 * 1000) % m;     }<\/code><\/pre>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u0430\u043a\u0442\u0443\u0430\u043b\u0435\u043d \u0434\u043b\u044f <img class=\"formula inline\" source=\"v^{max} > 1&#8243; alt=&#187;v^{max} > 1&#8243; src=&#187;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/25f\/2b1\/c8c\/25f2b1c8c923a8e703389c5bd2b65622.svg&#187; width=&#187;74&#8243; height=&#187;18&#8243;\/>. <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u0432\u0435\u0440\u0445\u0443: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v^{max} &lt; \\lfloor log_{a_0}{2N} \\rfloor\" alt=\"v^{max} &lt; \\lfloor log_{a_0}{2N} \\rfloor\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/563\/882\/6b4\/5638826b439f1a00033e7753d2ae65c1.svg\" width=\"148\" height=\"23\"\/>, \u0442\u043e \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u044c, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0432\u043e\u0437\u0432\u043e\u0434\u0438\u043c, \u043d\u0435 \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u0438\u0442 7. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a^{v^{max} - v + u} &lt; a^{v^{max}}\" alt=\"a^{v^{max} - v + u} &lt; a^{v^{max}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9e7\/abe\/c99\/9e7abec9923a2eda924ca7b64c50b318.svg\" width=\"140\" height=\"21\"\/>, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u043c \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0435 \u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e.<\/p>\n<p>\u0423 \u043d\u0430\u0441 \u0432\u0441\u0435\u0433\u043e 7 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a^x\" alt=\"a^x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2d9\/73b\/ff1\/2d973bff134aa09e9bc4f642784488d3.svg\" width=\"20\" height=\"17\"\/>, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0435 \u0442\u0440\u0443\u0434\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u044d\u0448 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u0423\u0436 14 \u0431\u0430\u0439\u0442-\u0442\u043e \u043d\u0430\u0439\u0434\u0451\u043c \u043d\u0430 \u044d\u0442\u043e.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0441\u043e\u0432\u0441\u0435\u043c \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c.<\/p>\n<h3>\u0414\u0435\u043b\u0435\u043d\u0438\u0435<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0438 \u043e\u0442\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0442\u0432\u0438 \u043a\u043e\u0434\u0430 \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0435\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"v^{max} = 1\" alt=\"v^{max} = 1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fd1\/563\/497\/fd1563497358a70d900d33f8e375af2b.svg\" width=\"74\" height=\"18\"\/>, \u0443 \u043d\u0430\u0441 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u0438 \u043c\u043d\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0434\u0435\u043b\u0435\u043d\u0438\u044f.  \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0435\u0441\u043b\u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0442\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u0438 \u043d\u0435\u0442?<\/p>\n<h4>\u0414\u0435\u043b\u0435\u043d\u0438\u0435 4-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043d\u0430 4-\u0431\u0438\u0442\u043d\u043e\u0435<\/h4>\n<p>\u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u0435\u043b\u0438\u0442\u044c 4-\u0431\u0438\u0442\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0442\u043e \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u044d\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0430\u0437\u043e\u0439 \u0434\u043b\u044f \u0434\u043b\u0438\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u044f. \u041f\u0440\u043e\u0441\u0442\u043e\u0435 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435 \u0432 \u0446\u0438\u043a\u043b\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a\u0438\u043c \u0443\u0436 \u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u043e 17 \u0446\u0438\u043a\u043b\u043e\u0432 \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c (\u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0439 4-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u0438 \u0434\u0435\u043b\u0438\u043c\u043e\u0433\u043e):<\/p>\n<pre><code class=\"assembly\">div4x4:   FIM r6, 0x00 div4x4_loop:   SUB rr11   JCN nc, div4x4_return   CLC   ISZ rr12, div4x4_loop div4x4_return:   ADD rr11   XCH rr13   CLC   BBL 0<\/code><\/pre>\n<p>\u0412 \u0433\u043b\u0430\u0432\u0435 \u043f\u0440\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a, \u044f \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u043f\u043e\u0434\u0445\u043e\u0434 \u0441 15 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043e\u0442 1 \u0434\u043e 15. \u0420\u0430\u0437\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c 16 \u0431\u0430\u0439\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u043c 0x10, 0x20, 0x30, &#8230; \u0414\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0435\u0439 \u0431\u044b\u043b\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u043c\u043a\u0438, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u0431\u044b\u043b \u043d\u0435\u043a\u0438\u0439 \u043e\u0431\u0449\u0438\u0439 \u043a\u043e\u0434, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0431\u043b\u043e\u043a\u0430\u0445 \u0438 \u043a\u043e\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b, \u0442\u043e \u044f \u0441\u043c\u043e\u0433 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 ROM \u043d\u0435 \u0442\u0440\u0430\u0442\u044f \u0446\u0438\u043a\u043b\u044b \u043d\u0430 \u0441\u0448\u0438\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0447\u0430\u0441\u0442\u043a\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439.<\/p>\n<p>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0446\u0438\u043a\u043b\u043e\u0432 \u043d\u0430 \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b\u043e\u0441\u044c \u0434\u043e 11. \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, 6 \u0446\u0438\u043a\u043b\u043e\u0432 \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e, \u043d\u043e \u0432 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u044d\u0442\u043e 35% \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<h4>\u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 4-\u0431\u0438\u0442\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b<\/h4>\n<p>\u0414\u0440\u0443\u0433\u0430\u044f \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0441\u0435\u043c\u0435\u0441\u0442\u043d\u043e, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0434\u043b\u044f \u0434\u043b\u0438\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u044f &#8212; \u044d\u0442\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 4-\u0431\u0438\u0442\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0432 8-\u0431\u0438\u0442\u043d\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u043d\u0430\u0438\u0432\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f 4-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0443\u0436\u0435 \u0431\u044b\u043b\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0430 \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0442\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u043e\u0433\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u043e \u043f\u0435\u0440\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f. \u0421\u0435\u0440\u0438\u044f \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u0439 \u0432 \u0446\u0438\u043a\u043b\u0435 \u0441 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u043c, \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430 \u0441\u0435\u0431\u044f \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e &#8212; \u043e\u043a\u043e\u043b\u043e 70 \u0446\u0438\u043a\u043b\u043e\u0432 \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c.<\/p>\n<p>\u0414\u043b\u044f \u0432\u044b\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0442\u0435\u043c \u0436\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c, \u0447\u0442\u043e \u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435. \u041d\u043e \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0435\u0449\u0435 \u0432\u0441\u0451 \u0436\u0435 \u0437\u0430\u0438\u043c\u0435\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u041e\u0417\u0423. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0434 \u044d\u0442\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u043d\u0430\u043f\u0438\u0441\u0430\u0432 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 0, 1, 2 \u0438 8. \u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u043d\u0430 2 \u0438 8 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u0439 \u043c\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<pre><code class=\"assembly\">__location(01:0x00) mul4x4_0:   FIM r6, 0x00                                         # low, high = 0   BBL $BANK_WITH_VARIABLES  # INPUT: #   acc - first factor (a) #   rr10 - second factor (b) #   rr11 - 0x0 # OUTPUT: #   rr12 - low word of product #   rr13 - high word of product __location(01:0x08) mul4x4:   JIN r5  __location(01:0x10) mul4x4_1:   XCH rr12                                              # low  = a   LDM 0x0   XCH rr13                                              # high = 0   BBL $BANK_WITH_VARIABLES  __location(01:0x20) mul4x4_2:   RAL   XCH rr12   TCC   XCH rr13   BBL $BANK_WITH_VARIABLES  __location(01:0x30) mul4x4_3:   XCH rr12   LDM $BANK_WITH_MUL_TABLE_FOR_FACTOR_3   DCL   SRC r6   RD2   XCH rr12                                              # low   RD3   XCH rr13                                              # high   BBL $BANK_WITH_VARIABLES<\/code><\/pre>\n<h4>\u0414\u0435\u043b\u0435\u043d\u0438\u0435 16-\u0431\u0438\u0442\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b<\/h4>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u043b\u0438\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0442 \u041a\u043d\u0443\u0442\u0430 [^12], \u043d\u043e \u043e\u043d \u0432\u0435\u0441\u044c\u043c\u0430 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u044b\u0439 &#8212; \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439 \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u0438 \u0434\u0435\u043b\u0438\u043c\u043e\u0433\u043e. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0434\u0435\u043b\u0435\u043d\u0438\u044f 12-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0438\u043c\u043e\u0433\u043e \u043d\u0430 8-\u0431\u0438\u0442\u043d\u044b\u0439 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c, \u0438\u043b\u0438 8-\u0431\u0438\u0442\u043d\u043e\u0435 \u0434\u0435\u043b\u0438\u043c\u043e\u0435 \u0438 4-\u0431\u0438\u0442\u043d\u044b\u0439 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c, \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u0412\u0441\u0435\u0433\u043e \u0443 \u043d\u0430\u0441 10 \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0439 (\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u043c\u0435\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0443\u044e \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0447\u0435\u043c \u0434\u0435\u043b\u0438\u043c\u043e\u0435) \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f 3\u0445 \u0438\u0437 \u043d\u0438\u0445 \u043d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 D: 16&#215;12, 16&#215;8 \u0438 12&#215;8. \u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043a\u043e\u0434.<\/p>\n<h3>\u041c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0445 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439 \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0433\u043b\u0430\u0432, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043b\u0430 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0440\u044f\u0447\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0432 \u043a\u043e\u0434\u0435 &#8212; \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 60% \u0432\u0441\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u0432\u0435\u0441\u044c\u043c\u0430 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043e\u0442\u0442\u0430\u0447\u0438\u0432\u0430\u044f \u043a\u043e\u0434 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438.<\/p>\n<h4>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f<\/h4>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u043e \u0438\u0441\u043a\u0443\u0448\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9C%D0%BE%D0%BD%D1%82%D0%B3%D0%BE%D0%BC%D0%B5%D1%80%D0%B8\" rel=\"noopener noreferrer nofollow\">\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u041c\u043e\u043d\u0442\u0433\u043e\u043c\u0435\u0440\u0438<\/a> \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u0440\u0438\u0447\u0451\u043c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0447\u0438\u0441\u043b\u0430 \u0432 \u0444\u043e\u0440\u043c\u0435 \u041c\u043e\u043d\u0442\u0433\u043e\u043c\u0435\u0440\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0433\u043e &#8212; \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D_k\" alt=\"D_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/688\/dec\/6b5\/688dec6b50573f7cc543c58a4bcf1dfb.svg\" width=\"25\" height=\"20\"\/>. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438\u043a\u0438\u043d\u0443\u043b, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f 3 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f 16-\u0431\u0438\u0442\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b (4 \u0440\u0430\u0437\u0440\u044f\u0434\u0430, <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n = 4\" alt=\"n = 4\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c7f\/464\/28a\/c7f46428a86ec18a103ea0ec2950b9bf.svg\" width=\"47\" height=\"17\"\/>), \u0438 \u0434\u0430\u0436\u0435 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(13n^2 \/ 8) + n\" alt=\"(13n^2 \/ 8) + n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f03\/1b1\/334\/f031b133479123b1a071a06d9019fbf8.svg\" width=\"109\" height=\"25\"\/> \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 4-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430\u043c\u0438 [^13]. \u041b\u0435\u0433\u043a\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c &#8212; 30 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043a\u0430\u0436\u0434\u043e\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 12 \u0446\u0438\u043a\u043b\u043e\u0432, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043c 360 \u0446\u0438\u043a\u043b\u043e\u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435, \u0430 \u0435\u0449\u0435 \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e 150 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u0435\u0441\u0442\u044c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0432\u044b\u0448\u0435). \u0421\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u043e.<\/p>\n<p>\u041e\u043a, \u0430 \u0447\u0442\u043e \u043d\u0430\u0441\u0447\u0451\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0434\u043b\u0438\u043d\u043d\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e? \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u0435\u0434\u0451\u0442 \u043a 16 \u0432\u044b\u0437\u043e\u0432\u0430\u043c 4-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f  [^14]. \u0410 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435. \u0422\u043e\u0436\u0435 \u043d\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9A%D0%B0%D1%80%D0%B0%D1%86%D1%83%D0%B1%D1%8B\" rel=\"noopener noreferrer nofollow\">\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u041a\u0430\u0440\u0430\u0446\u0443\u0431\u044b<\/a> \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u0435\u043d \u0434\u043b\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0447\u0438\u0441\u0435\u043b: \u0443 \u043d\u0430\u0441 \u0432\u0441\u0451 \u0436\u0435 \u0432\u0441\u0435\u0433\u043e 4 \u0440\u0430\u0437\u0440\u044f\u0434\u0430.<\/p>\n<p>\u041e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0441\u0451 \u0433\u043b\u0443\u0431\u0436\u0435 \u043f\u043e\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u0440\u043e\u043b\u0438\u0447\u044c\u044e \u043d\u043e\u0440\u0443 \u0441 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f \u043a \u0441\u0430\u043c\u044b\u043c \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c \u0445\u0430\u043a\u0430\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430.<\/p>\n<pre><code class=\"javascript\">const modularMultiply = (a, b, m) => {   let multipliedFactor = a;   let result = 0;    for (let shiftedFactor = b; shiftedFactor > 0; shiftedFactor = shiftedFactor >> 1) {     if (shiftedFactor &amp; 0x1 === 0x1) {       result = (result + multipliedFactor) % m;     }      multipliedFactor = (multipliedFactor + multipliedFactor) % m;   }    return result; };<\/code><\/pre>\n<h4>\u041b\u0435\u043d\u0438\u0432\u043e\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e<\/h4>\n<p>\u0418\u0434\u0435\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u0432\u044b\u0447\u0435\u0442\u043e\u0432, \u0432\u0435\u0434\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043e\u043c \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043e \u0432 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u0431\u0440\u0430\u0442\u044c \u0448\u0430\u0433 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f. <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0435 \u0432\u0441\u0451 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e &#8212; \u0435\u0441\u043b\u0438 \u0441\u043e\u0432\u0441\u0435\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f, \u0442\u043e \u0443 \u043d\u0430\u0441 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (\u043c\u044b \u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 16-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438). \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"m\" alt=\"m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/41b\/e8f\/c80\/41be8fc80f99403e8266819cf9e05dc2.svg\" width=\"17\" height=\"12\"\/> \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u044f: <code>x = x > m ? x - m : x<\/code> \u0438\u0431\u043e \u043e\u0431\u0430 \u0441\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0445 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044b\u043b\u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"m\" alt=\"m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/75d\/fc5\/493\/75dfc5493b1cd90cfdf2744811ec8a6d.svg\" width=\"17\" height=\"12\"\/>. \u0421 \u043d\u043e\u0432\u044b\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u0442\u0430\u043a \u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u0430 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e.<\/p>\n<p>\u041f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0442\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 0x1000. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043c \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u0447\u0438\u0441\u0435\u043b \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u0432\u044b\u0447\u0435\u0442\u043e\u0432, \u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c \u0438\u0445 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0437\u0430\u0432\u043e\u0434\u0438\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e\u0438\u0441\u043a\u0430 (LUT) \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u043a\u0440\u0430\u0442\u043d\u044b\u043c\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"m\" alt=\"m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a1a\/d9f\/76d\/a1ad9f76d5e8ef7194ee2076e35213bf.svg\" width=\"17\" height=\"12\"\/>, \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u043c\u0438 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c \u0447\u0438\u0441\u043b\u0430 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0434\u043e 3-\u0445 \u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432. \u0421\u0430\u043c\u043e \u0441\u043e\u0431\u043e\u0439, \u043a\u043b\u0430\u0441\u0441 \u0432\u044b\u0447\u0435\u0442\u0430 \u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f (\u0432\u0435\u0434\u044c \u043e\u0442\u043d\u0438\u043c\u0430\u0435\u043c \u0447\u0438\u0441\u043b\u043e, \u043a\u0440\u0430\u0442\u043d\u043e\u0435 \u043c\u043e\u0434\u0443\u043b\u044e), \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u0441\u0451 \u043e\u043a. \u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 LUT \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e, \u043a\u043b\u044e\u0447\u0435\u043c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0440\u0430\u0437\u0440\u044f\u0434 \u0447\u0438\u0441\u043b\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"x = \\overline{x_3 x_2 x_1 x_0}, x_3 \\rightarrow \\lfloor \\frac{x_3 \\cdot 16^{3}}{m} \\rfloor \\cdot m\" alt=\"x = \\overline{x_3 x_2 x_1 x_0}, x_3 \\rightarrow \\lfloor \\frac{x_3 \\cdot 16^{3}}{m} \\rfloor \\cdot m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fbc\/d04\/5f8\/fbcd045f8430b0488b003f13a8eda30d.svg\" width=\"292\" height=\"46\"\/><\/p>\n<p>\u0414\u043b\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 LUT, \u0447\u0438\u0441\u043b\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 0x1000. \u0412 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043c\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\lfloor \\frac{F00_{16}}{m} \\rfloor \\cdot m\" alt=\"\\lfloor \\frac{F00_{16}}{m} \\rfloor \\cdot m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5d2\/bce\/dc3\/5d2bcedc305de33518a2a839ba480cc7.svg\" width=\"104\" height=\"43\"\/><\/p>\n<h4>\u0415\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u043b\u0435\u043d\u0438\u0432\u043e\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e<\/h4>\n<p>\u0420\u0430\u043d\u0435\u0435 \u044f \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u043f\u0440\u043e \u0447\u0438\u0441\u043b\u0430 \u0432 \u0444\u043e\u0440\u043c\u0435 \u041c\u043e\u043d\u0442\u0433\u043e\u043c\u0435\u0440\u0438 \u0438 \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432 \u044d\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0435, \u0430 \u0432\u044b\u0439\u0442\u0438 \u0438\u0437 \u043d\u0435\u0451 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"d \/ m\" alt=\"d \/ m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/154\/ad6\/f44\/154ad6f44b074c6019c70b1a0b94423c.svg\" width=\"37\" height=\"22\"\/>. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e &#8212; \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u0430\u0448\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u0432\u044b\u0447\u0435\u0442\u043e\u0432 \u043f\u0440\u044f\u043c\u043e \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u0430 \u0432\u0441\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0441\u0442\u0438 \u0441 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p>\u0422\u043e, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u043e\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 &#8212; \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u043e\u0432. \u041d\u043e \u0435\u0441\u043b\u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u0432 \u0446\u0435\u043b\u043e\u043c, \u0442\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043e\u0442 \u043e\u0442\u043a\u0430\u0437\u0430 \u043e\u0442 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u044c\u0448\u0435.<\/p>\n<h4>\u0421\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u044f<\/h4>\n<p>\u041c\u043e\u0436\u0435\u0442 \u044d\u0442\u043e \u043f\u0440\u043e\u0437\u0432\u0443\u0447\u0438\u0442 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u043d\u043e \u043d\u0430 i40xx \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u043d\u043e\u0433\u043e\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c, \u0438\u0437-\u0437\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0444\u043b\u0430\u0433\u0430 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 (\u0438\u043b\u0438 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f). \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u043c \u043e\u0434\u043d\u043e \u0447\u0438\u0441\u043b\u043e \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e, \u0442\u043e \u0444\u043b\u0430\u0433 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 1 \u0435\u0441\u043b\u0438 <em>\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u0431\u044b\u043b\u043e <\/em>(\u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u043c\u0443  ). \u041d\u043e \u0441\u0430\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u0442 \u044d\u0442\u043e\u0442 \u0444\u043b\u0430\u0433 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e, \u0435\u0441\u043b\u0438 \u043e\u043d \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u0442\u043e \u0438\u0437 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f 1. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043c\u043d\u043e\u0433\u043e\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u043b\u0430\u0433 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0432\u044b\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u044f\u0434:<\/p>\n<pre><code class=\"assembly\"># compute [rr0, rr1] = [rr0, rr1] - [rr2, rr3] LD rr0 SUB rr2    # acc = rr0 - rr2, borrow flag is 0, if there was borrow CMC        # inverse borrow flag XCH rr0 LD rr1 SUB rr3    # acc = rr1 - rr3 - borrow, borrow flag is 0, if there was borrow CMC        # inverse borrow flag XCH rr3<\/code><\/pre>\n<p>\u0412 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"assembly\"># compute [rr0, rr1] = [rr0, rr1] + [rr2, rr3] LD rr0 ADD rr2    # acc = rr0 + rr2, carry flag is 1, if there was carry XCH rr0 LD rr1 ADD rr3    # acc = rr1 + rr3 + carry, carry flag is 1, if there was carry XCH rr3<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 16-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ba0\/6ab\/6a1\/ba06ab6a19c8b64e0275b0828bc1cfdb.svg\" width=\"11\" height=\"12\"\/>\u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0441 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"16^3 - x\" alt=\"16^3 - x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/290\/0a2\/f3e\/2900a2f3ec9fbed6110d3edd22a75b52.svg\" width=\"63\" height=\"22\"\/>(<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434<\/a> \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d51\/3b7\/37d\/d513b737dadd8a959045abd610286f61.svg\" width=\"11\" height=\"12\"\/>) \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043d\u043e \u0441 \u043c\u0435\u043d\u044c\u0448\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439.<\/p>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u0449\u0435\u0439, \u0430 \u043d\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0439 \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"m\" alt=\"m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/942\/52d\/837\/94252d837e32a36d707177a53570f048.svg\" width=\"17\" height=\"12\"\/>\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<h4>\u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430!<\/h4>\n<p>\u041f\u043e\u0447\u0442\u0438 \u0441\u0440\u0430\u0437\u0443 \u043c\u043d\u0435 \u0431\u0440\u043e\u0441\u0438\u043b\u043e\u0441\u044c \u0432 \u0433\u043b\u0430\u0437\u0430 \u0442\u043e, \u0447\u0442\u043e \u0446\u0438\u043a\u043b \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 16 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e-\u043d\u0430\u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0433\u043e \u0442\u0435\u043b\u043e:<\/p>\n<pre><code class=\"assembly\">  # assume that rr6 has b[0]   LDM 0x1   AN6   JCN z, mulMod_skipMultiplierBit0       # if ((b >> 0) &amp; 0x1)   JMS mulMod_updateResult                #   res = res + multipliedFactor mulMod_skipMultiplierBit0:   JMS mulMod_updateMultipliedFactor      # multipliedFactor = multipliedFactor * 2    LDM 0x2   AN6   JCN z, mulMod_skipMultiplierBit1       # if ((b >> 1) &amp; 0x1)   JMS mulMod_updateResult                #   res = res + multipliedFactor mulMod_skipMultiplierBit1:   JMS mulMod_updateMultipliedFactor      # multipliedFactor = multipliedFactor * 2    # ... 14 more checks for particular bits<\/code><\/pre>\n<p>\u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0448\u0435, \u0442\u043e \u0432\u0435\u0441\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0447\u0435\u0440\u0435\u0434\u0435 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0439 &#8212; \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c <code>multipliedFactor<\/code> \u0438, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0431\u0438\u0442\u0430 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f, \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c <code>result<\/code>. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e 4-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u044f\u0434 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f \u0440\u0430\u0432\u0435\u043d 0x5 (0b0101), \u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c, \u0434\u0432\u0430\u0436\u0434\u044b \u0443\u0434\u0432\u043e\u0438\u0442\u044c <code>multipliedFactor<\/code>, \u0441\u043d\u043e\u0432\u0430 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c <code>result<\/code> \u0438 \u043e\u043f\u044f\u0442\u044c \u0443\u0447\u0435\u0442\u0432\u0435\u0440\u0438\u0442\u044c <code>multipliedFactor<\/code>. \u0412 \u043a\u043e\u0434\u0435 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"assembly\">__location(0x2:0x50) mulMod_processNibble_5:                   # 0b0101   JMS mulMod_updateResult   JMS mulMod_updateMultipliedFactor   JMS mulMod_updateMultipliedFactor   JMS mulMod_updateResult   JMS mulMod_updateMultipliedFactor   JUN mulMod_updateMultipliedFactor<\/code><\/pre>\n<p>\u041e\u043f\u0438\u0440\u0430\u044f\u0441\u044c \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u043f\u0440\u044b\u0436\u043e\u043a \u043d\u0430 \u043d\u0443\u0436\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442:<\/p>\n<pre><code class=\"assembly\">  # rr12 contains current digit for multiplier, rr13 = 0   JIN r6<\/code><\/pre>\n<p>\u041d\u0430\u043c \u043d\u0435 \u0432\u0430\u0436\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>multipliedFactor<\/code> \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0445\u043e\u0434\u043e\u043c \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u044d\u0442\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043d\u0430\u043c \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043b\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u044b\u0439 \u0431\u0438\u0442. \u0427\u0442\u043e\u0431 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u043b\u0438\u0448\u043d\u0438\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432, \u0437\u0430\u0432\u043e\u0434\u0438\u043c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432, \u0441\u0433\u0443\u0433\u0443\u0431\u043e \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0437\u0440\u044f\u0434\u0430:<\/p>\n<pre><code class=\"assembly\">__location(0x3:0x50) mulMod_processLastNibble_5:                   # 0b0101   JMS mulMod_updateResult   JMS mulMod_updateMultipliedFactor   JMS mulMod_updateMultipliedFactor   JUN mulMod_updateResultLast<\/code><\/pre>\n<h4>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 multipliedFactor \u0437\u0430 \u043e\u0434\u043d\u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e<\/h4>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 (\u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435) \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c <code>16 * multipliedFactor<\/code> \u0438 <code>8 * multipliedFactor<\/code> \u0431\u043e\u043b\u0435\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e, \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0440\u0438\u0441\u043a \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0443\u0435\u043c \u0437\u0430\u043f\u0430\u0441\u043d\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438 <code>mulMod_updateMultipliedFactor<\/code> .<\/p>\n<h4>\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0435\u0449\u0435 \u0438 \u0443\u0434\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0435 multipliedFactor<\/h4>\n<p>\u041f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 <code>multipliedFactor<\/code> :<\/p>\n<pre><code class=\"assembly\">  JMS mulMod_updateResult   JMS mulMod_updateMultipliedFactor<\/code><\/pre>\n<p>\u0418 \u0437\u0434\u0435\u0441\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u043c\u0438\u043a\u0440\u043e-\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e, \u0441\u043e\u0437\u0434\u0430\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>mulMod_updateResultAndFactor<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442 \u043a\u043e\u0434 \u0438\u0437 <code>mulMod_updateResult<\/code>\u0438 <code>mulMod_updateMultipliedFactor<\/code>. \u041a\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u044d\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442? \u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f &#8212; \u0440\u0430\u043d\u044c\u0448\u0435 \u0443 \u043d\u0430\u0441 \u0431\u044b\u043b\u043e 2 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 2 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 1 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u0438 1 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430. \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043c \u043f\u043e 3 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u0430. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u044d\u0442\u043e \u0437\u0432\u0443\u0447\u0438\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u044e\u0449\u0435, \u043d\u043e \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u0430 60% \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0430 \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u0430\u043a \u0434\u043e\u043b\u0433\u043e, \u0442\u043e \u0434\u0430\u0436\u0435 \u0442\u0430\u043a\u0438\u0435 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u044b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0442\u0430\u043a\u0442\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0432\u044b\u0438\u0433\u0440\u0430\u0442\u044c \u043c\u0438\u043d\u0443\u0442\u044b \u0438 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u043c\u0438\u043d\u0443\u0442 \u0432 \u043e\u0431\u0449\u0435\u043c \u0442\u0430\u0431\u0435\u043b\u0435.<\/p>\n<h4>\u0411\u043e\u043b\u0435\u0435 \u0448\u0443\u0441\u0442\u0440\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445<\/h4>\n<p>\u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0437\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0438 \u0443\u0434\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0438 <code>multipliedFactor<\/code>. \u0417\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u043d \u0432 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0440\u0430\u0437\u0440\u044f\u0434 \u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043c\u0435\u043d\u044c\u0448\u0435 0x8. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0442\u0430\u043a, \u0442\u043e \u043f\u0440\u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0438 \u043d\u0430 2 \u043c\u044b \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u043c \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c:<\/p>\n<pre><code class=\"assembly\">  XCH rr2                                           # multipliedFactor = multipliedFactor + multipliedFactor   AN7                                               # check if previous value of multipliedFactor[3] &lt; 4, then new multipliedFactor[3] &lt; 8   JCN z, mulMod_updateResultAndFactor_return        # if (multipliedFactor[3] &lt; 0x8) <\/code><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435\u0433\u043e 3 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u0430, \u043d\u043e, \u043a\u0430\u043a \u044f \u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435, \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0430\u043a\u0442 \u043d\u0430 \u0441\u0447\u0435\u0442\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0442\u0440\u044e\u043a &#8212; \u0437\u0430\u043c\u0435\u043d\u0438\u043b <code>AN7\/JCN<\/code> \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439 <code>JIN<\/code>. \u0414\u0430, \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u041f\u0417\u0423 \u043f\u043e\u0434 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430, \u043d\u043e \u043e\u043d\u043e \u0442\u043e\u0433\u043e \u0441\u0442\u043e\u0438\u043b\u043e, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0437\u0430\u043f\u0430\u0441 ROM \u0443 \u043d\u0430\u0441 \u0431\u044b\u043b. \u0415\u0441\u043b\u0438 \u0432 <code>rr2<\/code> \u0443 \u043d\u0430\u0441 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0440\u0430\u0437\u0440\u044f\u0434 \u0447\u0438\u0441\u043b\u0430, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <code>JIN r1<\/code> \u043c\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u043e\u0434\u043d\u0443 \u0438\u0445 \u0434\u0432\u0443\u0445 \u0432\u0435\u0442\u0432\u0435\u0439 &#8212; \u043a\u043e\u0433\u0434\u0430 <code>rr0 &lt; 0x8<\/code> \u0438 \u043a\u043e\u0433\u0434\u0430 <code>rr0 >= 0x8<\/code>. \u0414\u0430, \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0434\u0432\u0435 \u0441\u0435\u0440\u0438\u0438 \u043f\u043e 8 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u043a\u043e\u0434\u0430, \u043d\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0448\u0442\u0440\u0438\u0445\u0438, \u0438 \u044f \u0441\u043c\u043e\u0433\u0443 \u043f\u0435\u0440\u0435\u0436\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u043f\u0440\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0447\u0438\u0441\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430.<\/p>\n<pre><code class=\"assembly\">XCH rr2 JIN r1  __location(0x4:0x00) mulMod_updateMultipliedFactor_factor0:   BBL 0  __location(0x4:0x10) mulMod_updateMultipliedFactor_factor1:   BBL 0  ...  __location(0x4:0x80) mulMod_updateMultipliedFactor_factor8:   SRC r1   RD0   ADD rr0   XCH rr0   RD1   ADD rr1   XCH rr1   RD2   ADD rr4   XCH rr4   RD3   ADD rr2   XCH rr2   CLC   BBL 0  ...<\/code><\/pre>\n<h4>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0432\u043e\u0448\u043b\u0438 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u043a\u043e\u0434<\/h4>\n<p>\u0411\u044b\u043b\u043e \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0438\u0434\u0435\u0439, \u043d\u043e, \u043f\u043e \u0442\u043e\u0439 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u043e\u043d\u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u043e\u0434\u0430:<\/p>\n<ul>\n<li>\n<p>\u0412\u0435\u0442\u0432\u044c \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e 12-\u0431\u0438\u0442\u043d\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e. \u042d\u0442\u043e \u0431\u044b\u043b\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044b\u043b\u043e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u043e\u0434\u0443\u043b\u044f. \u0422\u043e\u0433\u0434\u0430 \u0434\u043b\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u043a\u043e\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0442\u0430\u0440\u0448\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u044f\u0434\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044f. \u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u0434\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u043b\u0435\u043d\u0438\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043c\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e, \u0434\u0430\u0431\u044b \u0441\u0440\u0430\u0437\u0443 \u043a\u043e\u0433\u0434\u0430 \u0447\u0438\u0441\u043b\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"m\" alt=\"m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f1b\/456\/176\/f1b456176ac111d48d093ec3baa93363.svg\" width=\"17\" height=\"12\"\/>\u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0435\u0433\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u0432\u044b\u0447\u0435\u0442\u043e\u0432. \u0421\u0430\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u0430\u044f &#8212; \u0447\u0442\u043e\u0431 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0434\u0432\u0430 \u0447\u0438\u0441\u043b\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0447\u0435\u0441\u0442\u044c \u043e\u0434\u043d\u043e \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0444\u043b\u0430\u0433 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f. \u0420\u0430\u0434\u0438 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e\u0438\u0441\u043a\u0430, \u043a\u043b\u044e\u0447\u0435\u043c \u044f\u0432\u043b\u044f\u043b\u0441\u044f \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0440\u0430\u0437\u0440\u044f\u0434 \u0447\u0438\u0441\u043b\u0430, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c &#8212; \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u043e\u0433\u043e, \u0442\u043e\u0447\u043d\u043e \u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u043e\u0434\u0443\u043b\u044f.<\/p>\n<pre><code class=\"assembly\">SRC rX      # first register in register pair contains the address of LUT, second register - multipliedFactor[3] RDM         # read isLessThanModulus = LUT[multipliedFactor[3]] JCN z, ret  # return if (isLessThanModulus)<\/code><\/pre>\n<\/li>\n<li>\n<p>\u0414\u0440\u0443\u0433\u043e\u0439, \u0438\u0441\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u043d\u043e\u044e \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044e \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u044f, \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 0. \u041f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0447\u0438\u0441\u043b\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c (\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e), \u0442\u043e \u043c\u044b \u0432\u044b\u0447\u0438\u0442\u0430\u043b\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"m\" alt=\"m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/77f\/888\/338\/77f8883386d9afddd48f968cf2233ca2.svg\" width=\"17\" height=\"12\"\/>. \u0414\u043e \u044d\u0442\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"javascript\">result = result + multipliedFactor [tmp, borrow] = result - m  \/\/ check if result - m > 0 if (!borrow) {   result = tmp }<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"javascript\">[result, carry] = result + multipliedFactor  \/\/ check if result > 0 now if (carry) {   result = result - m }<\/code><\/pre>\n<p>\u0417\u0430\u043c\u0435\u0442\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u041d\u0430\u0434\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0437\u0440\u0430\u0432\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"m\" alt=\"m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8b1\/745\/b4e\/8b1745b4e99fc4ab0c7d55e4ddbc757c.svg\" width=\"17\" height=\"12\"\/>\u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0445\u043e\u0434\u043e\u043c \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u044a\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0441\u0442\u0430\u0440\u0448\u0435\u0433\u043e \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u043e\u0433\u043e \u0431\u0438\u0442\u0430 \u0447\u0438\u0441\u043b\u0430, \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0435\u0433\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0442\u0430\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0432\u0442\u043e\u0440\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u043d\u0434 \u0431\u044b\u043b \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0445 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043c\u0435\u0441\u0442\u0430\u043c\u0438, \u0435\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0431\u044b\u043b\u0438 \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u044b\u043c\u0438 &#8212; \u0441\u0430\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0447\u0435\u043d\u044c \u0442\u043e\u043d\u043a\u043e \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c \u0432 \u043a\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u0430 \u0432 \u043a\u0430\u043a\u0438\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043b\u0438\u0448\u044c \u0442\u0440\u0430\u0442\u043e\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0412 \u0438\u0442\u043e\u0433\u0435, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u043b\u0430 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u043f\u043e\u0434\u0433\u043e\u043d\u043a\u0443 \u043a\u043e\u0434\u0430 \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u044f \u0443\u0431\u0440\u0430\u043b \u0435\u0451.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e\u0438\u0441\u043a\u0430 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e. \u0414\u0430\u0436\u0435 \u0434\u043b\u044f &#171;\u043b\u0435\u043d\u0438\u0432\u043e\u0439&#187; \u0432\u0435\u0440\u0441\u0438\u0438. \u041d\u043e \u0432 \u041e\u0417\u0423 \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430, \u0434\u0430 \u0438, \u043d\u0430\u0432\u0441\u043a\u0438\u0434\u043a\u0443, \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u0431\u044b\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043a\u043e\u0434 \u043c\u043e\u0433 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u043c\u0435\u0434\u043b\u0435\u043d\u0435\u0435.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0430\u043c\u044f\u0442\u0438<\/h3>\n<p>\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445 \u044f \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0438, \u043a\u044d\u0448\u0438 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u0421\u0435\u0439\u0447\u0430\u0441 \u0436\u0435 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u044d\u0442\u043e \u0432 \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u043c \u0432\u0438\u0434\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/657\/cfa\/d20\/657cfad20fa6ab11592b488d8fe72ef5.png\" alt=\"\u041a\u0430\u0440\u0442\u0430 \u043f\u0430\u043c\u044f\u0442\u0438\" title=\"\u041a\u0430\u0440\u0442\u0430 \u043f\u0430\u043c\u044f\u0442\u0438\" width=\"711\" height=\"341\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/657\/cfa\/d20\/657cfad20fa6ab11592b488d8fe72ef5.png\"\/><\/p>\n<div><figcaption>\u041a\u0430\u0440\u0442\u0430 \u043f\u0430\u043c\u044f\u0442\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041b\u0435\u0433\u0435\u043d\u0434\u0430:<\/p>\n<ul>\n<li>\n<p>\u0417\u0435\u043b\u0451\u043d\u0430\u044f \u0441\u0435\u043a\u0446\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D_n\" alt=\"D_n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/460\/1b4\/049\/4601b4049a7484f47a4440fdd65d9651.svg\" width=\"26\" height=\"20\"\/>, \u0432\u0441\u0435\u0433\u043e 114 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438\u0437 128 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0424\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u0430\u044f &#8212; \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u043e\u0438\u0441\u043a\u0430 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u0430\u0441\u043d\u0430\u044f &#8212; \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f. \u041a\u0430\u0436\u0434\u0430\u044f \u044f\u0447\u0435\u0439\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 8 \u0431\u0438\u0442, \u0430 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u043f\u0430\u043c\u044f\u0442\u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f 16 \u0431\u0438\u0442 (4 \u0441\u043b\u043e\u0432\u0430). \u0422\u0430\u043a \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u043d\u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u0445\u0440\u0430\u043d\u0438\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u0439. \u0412\u0441\u0435\u0433\u043e \u0443 \u043d\u0430\u0441 12 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u0439 (\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u043c 0, 1, 2 \u0438 8), \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0443 \u043d\u0430\u0441 \u0437\u0430\u043d\u044f\u0442\u044b \u0441\u0442\u0430\u0442\u0443\u0441\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0432 6 \u0431\u0430\u043d\u043a\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0440\u0430\u043d\u0436\u0435\u0432\u0430\u044f (\u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u0436\u0451\u043b\u0442\u0443\u044e) &#8212; \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u044f\u043c\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a_i\" alt=\"a_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aae\/bef\/859\/aaebef85939c578617c44199d5e02337.svg\" width=\"17\" height=\"15\"\/>. \u041c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0434\u043e \u0432\u043e\u0441\u044c\u043c\u0438 16-\u0431\u0438\u0442\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u0442\u043e \u0435\u0441\u0442\u044c 32 \u0431\u0430\u0439\u0442\u0430 \u0438\u043b\u0438 2 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0416\u0451\u043b\u0442\u0430\u044f &#8212; \u043a\u0430\u0440\u0442\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0447\u0438\u0441\u0435\u043b.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u043d\u044f\u044f &#8212; \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0447\u0438\u0441\u0435\u043b.<\/p>\n<\/li>\n<li>\n<p>\u0411\u0435\u043b\u0430\u044f &#8212; \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u0430 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0435\u0441\u044c\u043c\u0430 \u043f\u043b\u043e\u0442\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0430, \u043d\u043e, \u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u044b \u0447\u0435\u043c \u0432 \u043c\u043e\u0451\u043c \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435.<\/p>\n<h3>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u0431\u0435\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u044f \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0445\u0430\u043a\u0430\u043c\u0438 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0443\u043b\u043e\u0436\u0438\u043b\u0430\u0441\u044c \u0432 \u043e\u0442\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0435 \u0440\u0430\u043c\u043a\u0438 &#8212; \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0446\u0438\u0444\u0440 \u03c0 \u0437\u0430 69 \u0447\u0430\u0441\u043e\u0432, 29 \u043c\u0438\u043d\u0443\u0442 \u0438 02 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/53a\/c7c\/ad2\/53ac7cad20f3f6f42067d1f7249c2c2e.png\" alt=\"\u041e\u0434\u0438\u043d \u0438\u0437 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u043b\u0435\u0439\u043c\u0433\u0440\u0430\u0444\u043e\u0432\" title=\"\u041e\u0434\u0438\u043d \u0438\u0437 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u043b\u0435\u0439\u043c\u0433\u0440\u0430\u0444\u043e\u0432\" width=\"1900\" height=\"294\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/53a\/c7c\/ad2\/53ac7cad20f3f6f42067d1f7249c2c2e.png\"\/><\/p>\n<div><figcaption>\u041e\u0434\u0438\u043d \u0438\u0437 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u043b\u0435\u0439\u043c\u0433\u0440\u0430\u0444\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<h2>\u0410\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/h2>\n<p><a href=\"https:\/\/github.com\/markablov\/i4040-sbc\/tree\/main\/schematic\" rel=\"noopener noreferrer nofollow\">\u042d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430<\/a> \u043c\u0430\u043b\u043e \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u0445\u0435\u043c\u044b \u043f\u043b\u0430\u0442\u044b \u0434\u043b\u044f i4004. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u0421\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u0430\u044f\u043b stm32 \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u0441\u043e \u0432\u0441\u0435\u0439 \u043e\u0431\u0432\u044f\u0437\u043a\u043e\u0439, \u0432\u043c\u0435\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u044b, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0439 \u0441 DIP \u0441\u043e\u043a\u0435\u0442\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0438\u0442\u0430\u043d\u0438\u0435 Intel 4040 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0441 USB, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0432\u043d\u0435\u0448\u043d\u0435\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u043d\u0430 20 \u0432\u043e\u043b\u044c\u0442.<\/p>\n<\/li>\n<li>\n<p>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 USB, \u0430 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 UART \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u043c, \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u044f \u0431\u0430\u0437\u0430 \u043d\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0430\u0441\u044c &#8212; stm32f4 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u0430\u043c\u044f\u0442\u0438 (ROM \u0438 RAM), LM339 \u0438 CD40109 \u0434\u043b\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0441 15 \u0432\u043e\u043b\u044c\u0442 \u0434\u043b\u044f i4040 \u043d\u0430 3.3 \u0432\u043e\u043b\u044c\u0442\u0430 \u0434\u043b\u044f stm32, \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b82\/5aa\/5a1\/b825aa5a18ee393075a708c4fcbebd9f.png\" alt=\"\u042d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043f\u043b\u0430\u0442\u044b\" title=\"\u042d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043f\u043b\u0430\u0442\u044b\" width=\"2433\" height=\"1687\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b82\/5aa\/5a1\/b825aa5a18ee393075a708c4fcbebd9f.png\"\/><\/p>\n<div><figcaption>\u042d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043f\u043b\u0430\u0442\u044b<\/figcaption><\/div>\n<\/figure>\n<h2>\u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0430<\/h2>\n<p>\u041e\u0441\u043d\u043e\u0432\u0443 \u0434\u043b\u044f <a href=\"https:\/\/github.com\/markablov\/i4040-sbc\/tree\/main\/firmware\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438<\/a> \u044f \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0438\u0437 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u044b \u0441 i4004, \u043d\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0435\u0433\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0430\u043c\u044f\u0442\u0438 \u0443 4040 \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439, \u0447\u0435\u043c \u0443 4004: \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0438\u043d \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0431\u0430\u043d\u043a\u0430 \u041f\u0417\u0423. \u0414\u043b\u044f \u043d\u0430\u0441 \u044d\u0442\u043e \u0438\u0433\u0440\u0430\u0435\u0442 \u0440\u043e\u043b\u044c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b \u043f\u043b\u0430\u0442\u0443 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043d\u0438\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0442\u0430\u043a\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u0438\u0434\u0443\u0449\u0435\u0433\u043e \u043a Intel 4004. 625 \u043a\u0438\u043b\u043e\u0433\u0435\u0440\u0446 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b\u043e\u0441\u044c \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 70 \u0447\u0430\u0441\u043e\u0432, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0440\u0430\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0432 740 \u043a\u0438\u043b\u043e\u0433\u0435\u0440\u0446.<\/p>\n<p>\u0418 \u0442\u043e\u0433\u0434\u0430-\u0442\u043e \u0442\u0430\u0439\u043c\u0438\u043d\u0433\u0438 \u043f\u043e\u043f\u043b\u044b\u043b\u0438 &#8212; \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0430\u043a\u0442 i4040 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043d\u0443\u0436\u043d\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0438\u043d\u044b, \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0438\u043d\u0430\u0445. \u041f\u0440\u0438 740 \u043a\u0438\u043b\u043e\u0433\u0435\u0440\u0446\u0430\u0445, \u0434\u043b\u0438\u043d\u0430 \u0442\u0430\u043a\u0442\u0430 \u043d\u0430 i4040 \u0432\u0441\u0435\u0433\u043e 1350\u043d\u0441. \u041f\u0440\u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u044f\u0434\u0440\u0430 stm32 \u0432 168 \u043c\u0435\u0433\u0430\u0433\u0435\u0440\u0446, \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435\u0433\u043e 200 \u0442\u0430\u043a\u0442\u043e\u0432 stm32 \u043d\u0430 \u0432\u0441\u0451 \u043f\u0440\u043e \u0432\u0441\u0451.<\/p>\n<p>\u0421 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e \u0443\u0437\u043a\u043e\u0435 \u043e\u043a\u043d\u043e. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u0442 \u0442\u0430\u043a\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u0437\u043d\u0430\u0442\u044c \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0442 \u043d\u0430 i4040, \u043d\u043e \u0441 \u0442\u0430\u043a\u0438\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c \u0431\u044b\u043b\u0438 \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u044b \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 \u0444\u0440\u043e\u043d\u0442\u043e\u043c \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0441\u0442\u0430\u0440\u0442\u043e\u043c \u043c\u043e\u0435\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u042f \u0437\u0430\u043c\u0435\u043d\u0438\u043b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0439 \u043e\u043f\u0440\u043e\u0441 \u043f\u0438\u043d\u0430:<\/p>\n<pre><code class=\"cpp\">  while ((OUT_4040_PHI1_GPIO_Port->IDR &amp; OUT_4040_PHI1_Pin) == OUT_4040_PHI1_Pin);    OUT_TEST1_GPIO_Port->ODR ^= OUT_TEST1_Pin;   handleCyclePhi1Falling();   OUT_TEST1_GPIO_Port->ODR ^= OUT_TEST1_Pin;<\/code><\/pre>\n<p>\u041f\u0438\u043d <code>TEST1<\/code> \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 stm32 \u0442\u0440\u0430\u0442\u0438\u0442 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u043a\u0442\u0430\u043c\u0438.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0442\u0430\u0439\u043c\u0438\u043d\u0433\u0438 \u043e\u0447\u0435\u043d\u044c \u0436\u0435\u0441\u0442\u043a\u0438\u0435, \u0442\u043e \u044f \u043e\u0442\u0440\u0443\u0431\u0430\u044e \u0432\u0441\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a stm32 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442 \u0441 \u0434\u0430\u043c\u043f\u043e\u043c \u041f\u0417\u0423, \u0432\u0441\u0451 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u041f\u041a \u0437\u0430\u043c\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 Intel 4040 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u0440\u0442\u044b \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 ROM\/RAM, \u0442\u043e \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044e \u0442\u0430\u043a\u0443\u044e \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0431\u0443\u0444\u0435\u0440. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e Intel 4040 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <code>HALT<\/code> (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <code>HLT<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0439, \u043a\u0441\u0442\u0430\u0442\u0438, \u043d\u0435 \u0431\u044b\u043b\u043e \u0432 i4004), \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u043d\u0430 stm32 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u044d\u0442\u043e \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0438 \u0432\u044b\u0448\u0435\u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0439 \u0431\u0443\u0444\u0435\u0440 \u043d\u0430 \u041f\u041a.<\/p>\n<h2>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b<\/h2>\n<p>\u0421\u0430\u043c\u043e \u0441\u043e\u0431\u043e\u0439, \u0431\u044b\u043b \u0440\u044f\u0434 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043a\u0430\u043a \u0432 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439, \u0442\u0430\u043a \u0438 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044f\u0445 \u043f\u043b\u0430\u0442\u044b, \u043d\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u044f \u0441\u043c\u043e\u0433 \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u0434\u0430 \u043d\u0430 Intel 4040. \u0418 \u0442\u0443\u0442 \u043c\u0435\u043d\u044f \u043f\u043e\u0434\u0436\u0438\u0434\u0430\u043b\u043e \u0434\u0443\u0448\u0435\u0440\u0430\u0437\u0434\u0438\u0440\u0430\u044e\u0449\u0435\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 &#8212; \u044f \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043b \u043e\u0447\u0435\u043f\u044f\u0442\u043a\u0443 \u0432 \u043a\u043e\u0434\u0435 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u0440\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445. \u041c\u0430\u0448\u0438\u043d\u043d\u044b\u0435 \u0446\u0438\u043a\u043b\u044b \u0441\u0447\u0438\u0442\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u043d\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0438\u0445 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \u044f \u0434\u0435\u043b\u0438\u043b \u043d\u0430 95000, \u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u043b \u043d\u0430 92500. \u0410 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u0432\u0441\u0451 \u043f\u043e\u0447\u0442\u0438 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0441\u043a\u0440\u0438\u043f\u044f \u0437\u0443\u0431\u0430\u043c\u0438. \u044f \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u0437\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u043a\u043e\u0434\u0430.<\/p>\n<p>\u042f \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u043b \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a \u0432\u0430\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c \u0436\u0435\u043b\u0435\u0437\u0435, \u0438 \u043d\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0446\u0435\u043d\u043a\u0430\u043c\u0438, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438\/\u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435, \u044f \u0434\u043e\u0431\u0438\u043b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0438 \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u043a \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 i4040. \u041d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0440\u0438\u0441\u043a\u043e\u0432\u0430\u0442\u044c \u0438 \u0436\u0434\u0430\u0442\u044c 70 \u0447\u0430\u0441\u043e\u0432 \u0431\u0435\u0437 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0438 \u0447\u0442\u043e \u043a\u043e\u0434 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 255 \u0446\u0438\u0444\u0440 \u03c0, \u0432\u043c\u0435\u0441\u0442\u043e 2048+.<\/p>\n<pre><code>[2023-10-31T12:08:05.527Z] START command has been received, RAM dump size is 8192 bytes [2023-10-31T13:13:08.988Z] Program has been finished [2023-10-31T13:13:08.994Z] Instruction cycles processed = 00000000158651E4 [2023-10-31T13:13:08.995Z] Output from i4040 (263 nibbles): [2023-10-31T13:13:08.995Z]   3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 2 6 4 3 3 8 3 2 7 9 5 0 2 8 8 4 1 9 7 1 6 9 3 9 9 3 7 5 1 0 5 8 2 0 9 7 4 9 4 4 5 9 2 3 0 7 8 1 6 4 0 6 2 8 6 2 0 8 9 9 8 6 2 8 0 3 4 8 2 5 3 4 2 1 1 7 0 6 7 [2023-10-31T13:13:08.995Z]   9 8 2 1 4 8 0 8 6 5 1 3 2 8 2 3 0 6 6 4 7 0 9 3 8 4 4 6 0 9 5 5 0 5 8 2 2 3 1 7 2 5 3 5 9 4 0 8 1 2 8 4 8 1 1 1 7 4 5 0 2 8 4 1 0 2 7 0 1 9 3 8 5 2 1 1 0 5 5 5 9 6 4 4 6 2 2 9 4 8 9 5 4 9 3 0 3 8 1 9 [2023-10-31T13:13:08.995Z]   6 4 4 2 8 8 1 0 9 7 5 6 6 5 9 3 3 4 4 6 1 2 8 4 7 5 6 4 8 2 3 3 7 8 6 7 8 3 1 6 5 2 7 1 2 0 1 9 0 9 1 4 5 6 4 8 5 6 6 9 2 3 F<\/code><\/pre>\n<p>\u041a\u0430\u043a \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u044d\u0442\u043e \u0437\u0430\u043d\u044f\u043b\u043e \u0432\u0441\u0435\u0433\u043e \u0447\u0430\u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 3.5 \u0447\u0430\u0441\u0430\u043c\u0438 \u043a\u0440\u0430\u043d\u0438\u043a\u043e\u0432\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043d\u0430 i4004. \u0421\u0430\u043c\u043e \u0441\u043e\u0431\u043e\u0439, \u044d\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\u043c: \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b, \u0440\u0430\u0437\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0434\u0430\u0436\u0435 \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0430\u043a\u0442\u043e\u0432\u044b\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u044f \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0443 \u0440\u044f\u0434 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439 \u0432 \u043a\u0440\u0430\u043d\u0438\u043a\u043e\u0432\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0442\u043e \u043d\u0435 \u0444\u0430\u043a\u0442 \u0447\u0442\u043e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0431\u044b\u043b\u043e \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445.<\/p>\n<p>\u041e\u0431\u043e\u0434\u0440\u0451\u043d\u043d\u044b\u0439 \u0442\u0435\u043c, \u0447\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u043e\u0432\u043f\u0430\u043b \u0441 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c, \u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f 2048+ \u0446\u0438\u0444\u0440 \u0438 \u0441\u0442\u0430\u043b \u0436\u0434\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 70 \u0447\u0430\u0441\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f. \u042f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438\u043b\u0435\u043f\u0438\u043b \u0434\u0432\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0440\u0430\u0434\u0438\u0430\u0442\u043e\u0440\u0430 (\u0441\u043d\u044f\u0442\u044b\u0445 \u0441 dip-8 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c) \u043d\u0430 \u0441\u0430\u043c i4040 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0440\u0430\u0434\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043e\u0445\u043b\u0430\u0436\u0434\u0435\u043d\u0438\u044f, \u0445\u043e\u0442\u044f, \u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u043e\u043d \u0433\u0440\u0435\u043b\u0441\u044f \u043d\u0435 \u0442\u0430\u043a \u0441\u0438\u043b\u044c\u043d\u043e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b80\/02c\/db0\/b8002cdb0c8561d1cbc71e9fe80a0d13.png\" alt=\"\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b\" title=\"\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b\" width=\"3285\" height=\"732\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b80\/02c\/db0\/b8002cdb0c8561d1cbc71e9fe80a0d13.png\"\/><\/p>\n<div><figcaption>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0441\u0451 \u043f\u0440\u043e\u0448\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438 i4040 \u0441\u043c\u043e\u0433 \u043f\u0435\u0440\u0435\u0431\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 ENIAC&#8217;a \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0432 69 \u0447\u0430\u0441\u043e\u0432, 28 \u043c\u0438\u043d\u0443\u0442 \u0438 31 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<p>PS: \u043e\u0447\u0435\u043d\u044c \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430 \u0436\u0435\u043b\u0435\u0437\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u043e \u0442\u0430\u043a\u0442\u0430\u043c \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043e\u0447\u0435\u043d\u044c \u0431\u043b\u0438\u0437\u043a\u043e\u0435. \u041e\u0442\u0432\u0435\u0442 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0435 \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u0432 stm32 \u043d\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043d\u0430 100%, \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u043a\u043e\u043b\u043e 740.1 \u043a\u0438\u043b\u043e\u0433\u0435\u0440\u0446\u0430, \u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u0440\u043e\u0432\u043d\u043e \u0432 740 \u043a\u0438\u043b\u043e\u0433\u0435\u0440\u0446. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u044f \u0434\u0430\u0436\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043e\u0433\u043d\u0430\u043b Intel 4040 (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0438)!<\/p>\n<h2>\u0421\u0441\u044b\u043b\u043a\u0438<\/h2>\n<p>[^1]: <a href=\"https:\/\/ieeexplore.ieee.org\/document\/5999630\" rel=\"noopener noreferrer nofollow\">Brian J. Shelburne, &#171;The ENIAC&#8217;s 1949 Determination of \u03c0&#187;<\/a><\/p>\n<p>[^2]: <a href=\"https:\/\/www.jstor.org\/stable\/2002695\" rel=\"noopener noreferrer nofollow\">George W. Reitwiesner, An ENIAC Determination of \u03c0 and e to more than 2000 Decimal Places<\/a><\/p>\n<p>[^3]: <a href=\"http:\/\/datasheets.chipdb.org\/upload\/wepwawet\/INTELLEC%204.pdf\" rel=\"noopener noreferrer nofollow\">Intel\u00a0Intellec 4\/Mod 40\u00a0Microcomputer Development System Reference Manual<\/a><\/p>\n<p>[^4]: <a href=\"https:\/\/www.maa.org\/sites\/default\/files\/pdf\/pubs\/amm_supplements\/Monthly_Reference_12.pdf\" rel=\"noopener noreferrer nofollow\">Stanley Rabinowitz and Stan Wagon, &#171;A Spigot Algorithm for the Digits of \u03c0&#187;<\/a><\/p>\n<p>[^5]: <a href=\"https:\/\/www.cs.ox.ac.uk\/people\/jeremy.gibbons\/publications\/spigot.pdf\" rel=\"noopener noreferrer nofollow\">Jeremy Gibbons, &#171;Unbounded Spigot Algorithms for the Digits of Pi &#171;<\/a><\/p>\n<p>[^6]: <a href=\"https:\/\/www.davidhbailey.com\/dhbpapers\/digits.pdf\" rel=\"noopener noreferrer nofollow\">David Bailey, Peter Borwein and Simon Plouffe, &#171;On the Rapid Computation of Various Polylogarithmic Constants&#187;<\/a><\/p>\n<p>[^7]: <a href=\"https:\/\/arxiv.org\/ftp\/arxiv\/papers\/0912\/0912.0303.pdf\" rel=\"noopener noreferrer nofollow\">Simon Plouffe, &#171;On the computation of the \u074an&#8217;th decimal digit of various transcendental numbers&#187;<\/a><\/p>\n<p>[^8]: <a href=\"https:\/\/bellard.org\/pi\/pi_n2\/pi_n2.html\" rel=\"noopener noreferrer nofollow\">Fabrice Bellard, &#171;Computation of the n&#8217;th digit of pi in any base in O(n^2)&#187;<\/a><\/p>\n<p>[^9]: <a href=\"http:\/\/numbers.computation.free.fr\/Constants\/Algorithms\/nthdecimaldigit.pdf\" rel=\"noopener noreferrer nofollow\">Xavier Gourdon, &#171;Computation of the n-th decimal digit of \u03c0 with low memory&#187;<\/a><\/p>\n<p>[^10]: <a href=\"https:\/\/www.jstor.org\/stable\/2322496\" rel=\"noopener noreferrer nofollow\">D. H. Lehmer, &#171;Interesting Series Involving the Central Binomial Coefficient&#187;<\/a><\/p>\n<p>[^11]: <a href=\"http:\/\/www.bitsavers.org\/components\/intel\/MCS40\/MCS-40_Users_Manual_Nov74.pdf\" rel=\"noopener noreferrer nofollow\">Intel, &#171;MCS-40 User&#8217;s Manual For Logic Designers&#187;<\/a><\/p>\n<p>[^12]: <a href=\"https:\/\/www.amazon.com\/Art-Computer-Programming-Seminumerical-Algorithms\/dp\/0201896842\" rel=\"noopener noreferrer nofollow\">Donald E. Knuth, &#171;Art of Computer Programming, Volume 2: Seminumerical Algorithms&#187;, 4.3. Multiple Precision Arithmetic<\/a><\/p>\n<p>[^13]: <a href=\"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2890502\" rel=\"noopener noreferrer nofollow\">Hwajeong Seo, Zhe Liu, Yasuyuki Nogami, Jongseok Choi, Howon Kim, &#171;Hybrid Montgomery Reduction&#187;<\/a><\/p>\n<p>[^14]: <a href=\"http:\/\/mhutter.org\/papers\/Hutter2014MultiprecisionMultiplicationOn.pdf\" rel=\"noopener noreferrer nofollow\">Michael Hutter, Peter Schwabe, &#171;Multiprecision multiplication on AVR revisited&#187;<\/a><\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/773780\/\"> https:\/\/habr.com\/ru\/articles\/773780\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\">\n<div><figcaption>SBC \u0434\u043b\u044f Intel 4040<\/figcaption><\/div>\n<\/figure>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0433\u043e\u0434\u0443 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, <a href=\"https:\/\/habr.com\/ru\/articles\/660171\/\" rel=\"noopener noreferrer nofollow\">\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0449\u0443\u044e 255 \u0446\u0438\u0444\u0440 \u0447\u0438\u0441\u043b\u0430 \u03c0 <\/a>\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u043f\u0435\u0440\u0432\u043e\u043c \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u043e\u0442 Intel &#8212; 4004. \u0412 \u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0440\u0435\u043a\u043e\u0440\u0434 ENIAC&#8217;a &#8212; 2035 \u0446\u0438\u0444\u0440 [^1], \u043d\u043e \u043f\u043e\u0431\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0435 \u0441\u043c\u043e\u0433. \u041d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0433\u0435\u0448\u0442\u0430\u043b\u044c\u0442. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u0440\u0435\u0435\u043c\u043d\u0438\u043a\u043e\u0432 \u043e\u0442 Intel &#8212; 4040. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0440\u0430\u043c\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u043a\u043e\u0434:<\/p>\n<ol>\n<li>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0446\u0435\u043b\u044c \u044d\u0442\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 2035 \u043f\u0435\u0440\u0432\u044b\u0445 \u0446\u0438\u0444\u0440 \u0447\u0438\u0441\u043b\u0430 \u03c0 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b ENIAC. \u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 [^2] \u043e\u0437\u0432\u0443\u0447\u0435\u043d\u044b 70 \u0447\u0430\u0441\u043e\u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 69 \u0447\u0430\u0441\u043e\u0432, 59 \u043c\u0438\u043d\u0443\u0442 \u0438 59 \u0441\u0435\u043a\u0443\u043d\u0434.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u043c\u044f\u0442\u044c, \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u0443\u044e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c. \u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0430\u043d\u043a\u043e\u0432 RAM\/ROM.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0437\u0431\u0435\u0433\u0430\u0435\u043c \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043f\u0440\u0435\u0434\u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0432 \u041f\u0417\u0423. \u0412\u0441\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f i4040. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u043e\u0432 \u043d\u0430 \u041f\u041a \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0451 \u043a\u0430\u043a \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u0443\u044e \u0441\u0435\u043a\u0446\u0438\u044e \u0432 \u043a\u043e\u0434, \u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0435\u0451 \u043d\u0430 \u043b\u0435\u0442\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0438\u043a\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445 \u0446\u0438\u0444\u0440 \u03c0. \u0414\u0430, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0432\u044b\u0432\u0435\u0441\u0442\u0438 2035+ \u0446\u0438\u0444\u0440, \u043d\u043e \u043a\u043e\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0434\u043b\u044f \u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ol>\n<p><em>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u043e \u0433\u043b\u0430\u0432\u0430\u043c, \u0430 \u043d\u0435 \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443,  \u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043d\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0433 \u043d\u0443\u0436\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u0442\u043e \u043e\u043f\u044f\u0442\u044c \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u043a \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f\u043c. \u0410 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0430\u0434 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c  \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0430 \u0432 \u043e\u0434\u0438\u043d \u043a\u0443\u0441\u043e\u043a,  \u043a\u043e\u0440\u043f\u0435\u043d\u0438\u0435 \u043d\u0430\u0434 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u043c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c &#8212; \u0432 \u0434\u0440\u0443\u0433\u043e\u0439, \u0438 \u0442.\u0434.<\/em><\/p>\n<h2>\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/h2>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e 4040 \u0432\u044b\u0448\u0435\u043b \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u043f\u043e\u0437\u0436\u0435 \u0447\u0435\u043c \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a, \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f 4004 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0441\u044c:<\/p>\n<ul>\n<li>\n<p>\u0422\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 740 \u043a\u0438\u043b\u043e\u0433\u0435\u0440\u0446. \u041e\u0434\u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0437\u0430 8 \u0438\u043b\u0438 16 \u0442\u0430\u043a\u0442\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043d\u0430\u0441 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 92500 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 (ISA) \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u043b\u0441\u044f, \u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0447\u0442\u043e &#171;\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e&#187;. \u0412\u0441\u0451 \u0435\u0449\u0435 \u043d\u0435\u0442 \u043d\u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0438 \u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u043d\u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e. \u0427\u0435\u0433\u043e \u0443\u0436 \u0442\u0430\u043c, \u0434\u0430\u0436\u0435 \u0441\u0434\u0432\u0438\u0433\u043e\u0432\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u041e\u0417\u0423 \u043d\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0441\u044f &#8212; 1280 \u0431\u0430\u0439\u0442. \u0414\u0430-\u0434\u0430, \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430. \u0412\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u043d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0440\u043e \u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u043e\u0431\u044a\u0451\u043c, \u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b [^3] \u0441 1280 \u0431\u0430\u0439\u0442\u0430\u043c\u0438 \u043d\u0430 \u0431\u043e\u0440\u0442\u0443 (\u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u044b\u0445 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u043a\u0430\u043a \u043d\u0430\u043c \u0438 \u043d\u0430\u0434\u043e).<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0447\u0442\u043e \u0436\u0435 \u043d\u0430\u043c \u043f\u0440\u0438\u043d\u0451\u0441 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e 4040 [^11]? \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u0443\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0443, \u043c\u0435\u043d\u044c\u0448\u0435\u0435 \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a:<\/p>\n<ul>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 AND\/OR. \u0418 \u044d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e 4004 \u043d\u0435 \u0438\u043c\u0435\u043b \u0442\u0430\u043a\u043e\u0439 \u0440\u043e\u0441\u043a\u043e\u0448\u0438. \u041d\u043e \u043d\u0435 \u0432\u0441\u0451 \u0442\u0430\u043a \u0440\u0430\u0434\u0443\u0436\u043d\u043e &#8212; \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u0443\u044e \u0434\u0438\u0437\u044a\u044e\u043d\u043a\u0446\u0438\u044e\/\u043a\u043e\u043d\u044a\u044e\u043d\u043a\u0446\u0438\u044e \u043d\u0430\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c\u0438. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, <code>AN6<\/code> \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0435 \u0418\u041b\u0418 \u043d\u0430\u0434 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043c <code>rr6<\/code> \u0438 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0435\u043a \u0432\u044b\u0437\u043e\u0432\u0430 \u0432\u044b\u0440\u043e\u0441 \u0441 3-\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0434\u043e 7. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0435\u043a\u0430 \u043c\u0435\u043d\u0435\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0445\u043e\u0442\u044f \u044f \u0441 \u044d\u0442\u0438\u043c \u0432\u0441\u0451 \u0436\u0435 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0441\u0442\u0430\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 &#8212; 24 \u0432\u043c\u0435\u0441\u0442\u043e 16. \u041d\u043e ISA \u043d\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0430\u0441\u044c \u0438 4040 \u0438\u043c\u0435\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0441 4004. \u0422\u043e \u0435\u0441\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432\u0441\u0451 \u0435\u0449\u0435 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d 4-\u043c\u044f \u0431\u0438\u0442\u0430\u043c\u0438. \u041a\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b? \u041d\u0435 \u0441\u0430\u043c\u044b\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c &#8212; \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b (\u0431\u0430\u043d\u043a\u0438) \u0442\u0443\u0434\u0430-\u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 <code>SB0<\/code> \/ <code>SB1<\/code><\/p>\n<\/li>\n<li>\n<p>\u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u041f\u0417\u0423 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0441\u044f. \u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0441\u044f \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0430\u043d\u043a ROM \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 4 \u043a\u0438\u0431\u0438\u0431\u0430\u0439\u0442\u0430\u043c\u0438. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0431\u0430\u043d\u043a\u0430\u043c\u0438 \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0435 \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0438\u043d\u0433\u0430 \u0432 \u043a\u043e\u0434\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 <code>DB0<\/code> \/ <code>DB1<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430<\/h2>\n<h3>\u0412\u044b\u0431\u043e\u0440 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430<\/h3>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c:<\/p>\n<ul>\n<li>\n<p><strong>\u041a\u0440\u0430\u043d\u0438\u043a\u043e\u0432\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c <\/strong>[^4]. \u042f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0435\u0433\u043e \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0415\u0441\u043b\u0438 \u0432\u043a\u0440\u0430\u0442\u0446\u0435, \u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c \u0446\u0438\u0444\u0440, \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u0432 \u041e\u0417\u0423. \u0420\u0430\u0437\u043c\u0435\u0440 \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u0435\u043d \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445 \u0446\u0438\u0444\u0440. \u041d\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 RAM \u0434\u043b\u044f 2000+ \u0446\u0438\u0444\u0440.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D0%B8_(%D1%87%D0%B8%D1%81%D0%BB%D0%BE)#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B,_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BD%D0%B0_%D1%82%D0%BE%D0%B6%D0%B4%D0%B5%D1%81%D1%82%D0%B2%D0%B0%D1%85\" rel=\"noopener noreferrer nofollow\"><strong>\u0424\u043e\u0440\u043c\u0443\u043b\u044b \u041c\u044d\u0447\u0438\u043d\u0430<\/strong><\/a><strong>. <\/strong>\u0421 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u043d\u0430\u0441 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442, \u043d\u043e \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0444\u043e\u0440\u043c\u0443\u043b \u043d\u0430\u043c \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 \u043f\u0430\u043c\u044f\u0442\u0438. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u0432\u0430 \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u0430 (\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0447\u0435\u043c \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445 \u0446\u0438\u0444\u0440 \u03c0). \u041d\u0438\u043a\u0430\u043a \u043d\u0435 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c 4000+ \u0446\u0438\u0444\u0440 \u0432 1280 \u0431\u0430\u0439\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u044b\u0439 \u043a\u0440\u0430\u043d\u0438\u043a\u043e\u0432\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c <\/strong>[^5]. \u0412 \u043d\u0451\u043c \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043c\u0430\u0441\u0441\u0438\u0432, \u043d\u043e, \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a \u0438 \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u0445 \u041c\u044d\u0447\u0438\u043d\u0430, \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u0432\u0435\u0441\u044c\u043c\u0430 \u0434\u043b\u0438\u043d\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438. \u0414\u0430\u0436\u0435 \u0434\u043b\u044f 255 \u0446\u0438\u0444\u0440 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0436\u0435 7 \u043a\u0438\u0431\u0438\u0431\u0430\u0439\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u043e\u0442 Bailey\u2013Borwein\u2013Plouffe <\/strong>[^6]. \u0412\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0438\u0434\u0435\u044f, \u043d\u043e \u043f\u043e \u044d\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u03c0 \u0432 16-\u0440\u0438\u0447\u043d\u043e\u0439 \u0438\u043b\u0438 2-\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. \u042f \u0432\u0441\u0451 \u0436\u0435 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 10-\u0440\u0438\u0447\u043d\u0443\u044e.<\/p>\n<\/li>\n<li>\n<p><strong>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u041f\u043b\u0443\u0444\u0444\u0430<\/strong> [^7]. \u041e\u0447\u0435\u043d\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439. \u0421 \u0442\u0430\u043a\u043e\u0439 \u0430\u0441\u0438\u043c\u043f\u0442\u043e\u0442\u0438\u043a\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f (\u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e).<\/p>\n<\/li>\n<li>\n<p><strong>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0442 \u0424\u0430\u0431\u0440\u0438\u0441\u0430 \u0411\u0435\u043b\u043b\u0430\u0440\u0430, \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0435\u043d\u043d\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u041f\u043b\u0443\u0444\u0444\u0430<\/strong> [^8]. \u041d\u0435 \u0441\u0430\u043c\u044b\u0439 \u0431\u044b\u0441\u0442\u0440\u044b\u0439, \u043d\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u041a\u0441\u0430\u0432\u044c\u0435 \u0413\u0443\u0440\u0434\u043e\u043d\u0430<\/strong> [^9]. \u041e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u044b\u0439, \u043d\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0438 \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u0439. \u0414\u043b\u044f \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 \u041f\u0417\u0423, \u0432\u0435\u0434\u044c \u0443 \u043d\u0430\u0441 \u0432\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043c\u0430 \u0432 8000 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0430 \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u0437\u044f\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0411\u0435\u043b\u043b\u0430\u0440\u0430 \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0435\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c.<\/p>\n<h3>\u0418\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u0434\u043b\u044f \u03c0<\/h3>\n<p>\u041f\u043b\u0443\u0444\u0444 (\u0430 \u0437\u0430\u0442\u0435\u043c \u0438 \u0411\u0435\u043b\u043b\u0430\u0440) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u0437\u0430\u043d\u044f\u0442\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0434\u043b\u044f \u03c0:<\/p>\n<p>\u0412\u044b\u0432\u043e\u0434 \u044d\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u044b (\u043a\u0430\u043a \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432) \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u041b\u0435\u043c\u0435\u0440\u0430. [^10] <\/p>\n<p>\u041d\u043e\u0442\u0430\u0446\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u043a\u0440\u0443\u0433\u043b\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u043a \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B1%D0%B8%D0%BD%D0%BE%D0%BC%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D1%8D%D1%84%D1%84%D0%B8%D1%86%D0%B8%D0%B5%D0%BD%D1%82\" rel=\"noopener noreferrer nofollow\">\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u0438\u043d\u043e\u043c\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442<\/a> \u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0430 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e \u0440\u044f\u0434\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c:<\/p>\n<h3>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 n-\u043e\u0439 \u0446\u0438\u0444\u0440\u044b \u0434\u0440\u043e\u0431\u0438<\/h3>\n<p>\u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430. \u041f\u0443\u0441\u0442\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0440\u043e\u0431\u044c \u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0443\u0437\u043d\u0430\u0442\u044c \u0446\u0438\u0444\u0440\u0443 \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430. \u041a\u0430\u043a \u043c\u044b \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e  :<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445:<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%B0%D1%8F_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B0%D1%85#%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4_%D0%B4%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%B0\" rel=\"noopener noreferrer nofollow\">\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0439 \u0442\u0435\u043e\u0440\u0435\u043c\u044b \u043e\u0431 \u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445<\/a> \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c:<\/p>\n<p>\u0412\u0432\u0435\u0434\u0451\u043c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e :<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a, \u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 :<\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u043e (1) \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0442\u044b \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e:<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440 \u0447\u0438\u0441\u043b\u0430  \u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0438:<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 (2) \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439: \u043c\u044b \u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0447\u0438\u0441\u0435\u043b (\u0430  \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c). \u0418 \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0438\u0449\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0447\u0438\u0441\u043b\u0430, \u0442\u043e \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u0438 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0435.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u043d\u0435 \u0440\u0435\u043a\u0443\u0440\u0440\u0435\u043d\u0442\u043d\u0430: \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u043b\u0435\u043d \u0441\u0443\u043c\u043c\u044b \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043f\u0440\u043e\u0448\u043b\u044b\u0445. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u043c \u043d\u0435\u0442 \u043d\u0443\u0436\u0434\u044b \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0435\u0441\u044c \u0440\u044f\u0434, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u043e\u043f\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u043a\u0440\u043e\u043c\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0430\u0440\u044b \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u0431\u0430\u0439\u0442 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439.<\/p>\n<h3>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 n-\u043e\u0439 \u0446\u0438\u0444\u0440\u044b \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e \u0440\u044f\u0434\u0430<\/h3>\n<p>\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0434\u043b\u044f \u03c0 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0440\u043e\u0431\u044c, \u0430 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0440\u044f\u0434. \u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u0432\u044b\u043a\u043b\u0430\u0434\u043a\u0438 \u043a \u0447\u0438\u0441\u043b\u0443, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443 \u0432 \u0444\u043e\u0440\u043c\u0435 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0440\u044f\u0434\u0430. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u043c, \u0447\u0442\u043e \u043a\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u0439 \u0432 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0437\u043d\u0430\u043c\u0435\u043d\u0430\u0442\u0435\u043b\u044f   \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 1. <\/p>\n<p>\u041f\u0443\u0441\u0442\u044c  \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0438  \u0434\u043b\u044f \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043b\u044f \u043f\u0430\u0440\u044b \u043a\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430  \u0432 \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438  \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c 0 (\u044d\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e ).  \u0422\u0430\u043a\u0436\u0435 \u043e\u0431\u044a\u044f\u0432\u0438\u043c  &#8212; \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f  \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0439 . \u0421\u0443\u043c\u043c\u0438\u0440\u0443\u044f \u0432\u0441\u0435 \u0432\u0432\u043e\u0434\u043d\u044b\u0435, \u043c\u043e\u0436\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0440\u044f\u0434:<\/p>\n<p> 0 \\Rightarrow a_i \\nmid b_k&#187; alt=&#187;S_N=\\sum_{k=1}^N\\frac{b_k}{A_k}, A_k=\\prod_{i=1}^{m}a_i^{v_{i,k}}, 0 \\leq v_{i,k} \\leq v_i^{max},\\:i \\neq j \\Rightarrow a_i \\perp a_j, v_{i,k} > 0 \\Rightarrow a_i \\nmid b_k&#187; src=&#187;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/502\/a3a\/174\/502a3a174e4db3cc072d2c5034677ac5.svg&#187; width=&#187;659&#8243; height=&#187;60&#8243;\/><\/p>\n<p>\u041f\u043e \u0441\u0445\u0435\u043c\u0435 \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u043e\u0431\u044a\u044f\u0432\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445:<\/p>\n<p> 0\\\\ \\end{cases}&#187; alt=&#187;A_{i,k} = \\frac {A_k}{a_i^{v_{i,k}}}\\\\ A_{i,k}^{-1} = \\frac{1}{A_{i,k}} \\bmod a_i^{v_{i,k}}\\\\ f_{i,k} = \\begin{cases} 0 &amp;\\text{if }v_{i,k}=0\\\\ b_k \\cdot A_{i,k}^{-1} \\bmod a_i^{v_{i,k}} &amp; \\text{if }v_{i,k} > 0\\\\ \\end{cases}&#187; src=&#187;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/baf\/09d\/11b\/baf09d11b4ea2ccceac185202e729f23.svg&#187; width=&#187;698&#8243; height=&#187;164&#8243;\/><\/p>\n<p>\u0418. \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0443\u044e \u0442\u0435\u043e\u0440\u0435\u043c\u0443 \u043e\u0431 \u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0447\u043b\u0435\u043d\u0430 \u0440\u044f\u0434\u0430 \u0438 \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0440\u044f\u0434\u0430:<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u043e\u0431\u0449\u0435\u0433\u043e \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f , \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 :<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0442\u043e\u0442 \u0436\u0435 \u0442\u0440\u044e\u043a, \u0447\u0442\u043e \u0438 \u0434\u043b\u044f \u0434\u0440\u043e\u0431\u0435\u0439 &#8212; \u0442\u0430\u043a \u043a\u0430\u043a \u0446\u0435\u043b\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043d\u0430\u0441 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442, \u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u0430\u043a\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438\u0437 \u043a\u043b\u0430\u0441\u0441\u0430 \u0432\u044b\u0447\u0435\u0442\u043e\u0432 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e .<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 &#8212; \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e  \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u043a\u043b\u0430\u0441\u0441\u0443 \u0432\u044b\u0447\u0435\u0442\u043e\u0432 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e . \u042d\u0442\u043e \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u044d\u0442\u043e \u043f\u043e\u043a\u0430\u0436\u0435\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>\u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u0432\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b, \u0438 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f :<\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u0434\u043b\u044f \u0446\u0438\u0444\u0440 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0440\u044f\u0434\u0430 \u043f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430:<\/p>\n<p>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f ,  \u0438 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u03c0:<\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f &#8212; \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0432 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 .<\/p>\n<p>\u041f\u0430\u0440\u0430 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u043e\u0438\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c: \u0432\u044b\u043d\u0435\u0441\u043b\u0438 \u0438\u0437 \u043d\u0435 \u0438\u0437-\u0437\u0430 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0430 \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430. \u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0441\u0440\u0430\u0437\u0443 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u043c \u043e\u0431\u0449\u0438\u0439 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c \u0434\u043b\u044f \u0438 . <\/p>\n<h3>\u041d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043a\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0432 \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f<\/h3>\n<p>\u041c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c  . \u0423 \u043d\u0430\u0441 \u0431\u044b\u043b\u0430 \u0432\u0432\u043e\u0434\u043d\u0430\u044f, \u0447\u0442\u043e  \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u043c , \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u044b, \u0438\u0431\u043e  \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0432 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f\u0445 . \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u044d\u0442\u043e \u0438\u043c\u0435\u0435\u0442 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0437\u043d\u0430\u0447\u0430\u043d\u0438\u0435 . \u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043a\u0430\u043a:<\/p>\n<p>\u0420\u0430\u0441\u043a\u0440\u043e\u0435\u043c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B0%D0%BB#%D0%94%D0%B2%D0%BE%D0%B9%D0%BD%D0%BE%D0%B9_%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B0%D0%BB\" rel=\"noopener noreferrer nofollow\">\u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b<\/a> \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <a href=\"https:\/\/en.wikipedia.org\/wiki\/Legendre%27s_formula\" rel=\"noopener noreferrer nofollow\">\u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u041b\u0435\u0436\u0430\u043d\u0434\u0440\u0430<\/a>:<\/p>\n<p>\u0412 (3) \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u043b\u0438 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0447\u043b\u0435\u043d \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 2, \u0430 \u0441\u0440\u0435\u0434\u0438 \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442 2 (\u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u043d\u0438\u044e \u0434\u0432\u043e\u0439\u043d\u043e\u0433\u043e \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b\u0430 \u0438\u043c\u0435\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0447\u0451\u0442\u043d\u044b\u0435 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0438), \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u043d \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043a\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u043b\u0435\u043d \u0441\u0443\u043c\u043c\u044b \u0438 \u043e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043e\u043d \u0440\u0430\u0432\u0435\u043d \u043b\u0438\u0431\u043e 0, \u043b\u0438\u0431\u043e 1:<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0438, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u043b\u0435\u043d \u0441\u0443\u043c\u043c\u044b \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d 1, \u0442\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0443\u043c\u043c\u044b \u0431\u0443\u0434\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u043d\u043e \u0441\u0432\u0435\u0440\u0445\u0443 .<\/p>\n<h3>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0439 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e \u0440\u044f\u0434\u0430 \u03c0<\/h3>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a\u043e\u0435 <\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-360112","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/360112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=360112"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/360112\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=360112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=360112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=360112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}