{"id":34264,"date":"2024-11-01T09:26:11","date_gmt":"2024-11-01T09:26:11","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34264"},"modified":"2024-11-01T10:57:56","modified_gmt":"2024-11-01T10:57:56","slug":"c-coding-test-course-implementing-eulers-phi-function","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34264\/","title":{"rendered":"C++ Coding Test Course, Implementing Euler&#8217;s Phi Function"},"content":{"rendered":"<p><body><\/p>\n<p>Understanding mathematics and algorithm problems is very important when preparing for coding tests. Today, we will discuss the Euler&#8217;s phi function and how to implement it in C++. The Euler&#8217;s phi function returns the number of positive integers less than or equal to a given integer <code>n<\/code> that are coprime to <code>n<\/code>. It has many applications in number theory and is useful for solving mathematical problems.<\/p>\n<h2>1. Introduction to Euler&#8217;s Phi Function<\/h2>\n<p>The Euler&#8217;s phi function is defined as follows:<\/p>\n<ul>\n<li>For a given n, \u03c6(n) = n * (1 &#8211; 1\/p1) * (1 &#8211; 1\/p2) * &#8230; * (1 &#8211; 1\/pk),<\/li>\n<\/ul>\n<p>where p1, p2, &#8230; pk are all the prime numbers that are coprime to n. For example, \u03c6(6) is calculated as follows:<\/p>\n<ul>\n<li>n = 6, primes p = 2, 3<\/li>\n<li>\u03c6(6) = 6 * (1 &#8211; 1\/2) * (1 &#8211; 1\/3) = 6 * 1\/2 * 2\/3 = 2<\/li>\n<\/ul>\n<h3>1.1 Properties of Euler&#8217;s Phi Function<\/h3>\n<ul>\n<li>\u03c6(1) = 1<\/li>\n<li>If p is a prime and k is a positive integer, \u03c6(p^k) = p^k * (1 &#8211; 1\/p)<\/li>\n<li>If two numbers a and b are coprime, \u03c6(ab) = \u03c6(a) * \u03c6(b)<\/li>\n<\/ul>\n<h2>2. Problem Description<\/h2>\n<p>Problem: Write a C++ program that calculates the Euler&#8217;s phi function for a given integer <code>n<\/code>.<\/p>\n<p>Input: An integer <code>n<\/code> (1 \u2264 n \u2264 10<sup>6<\/sup>)<\/p>\n<p>Output: An integer \u03c6(n)<\/p>\n<h2>3. Algorithm Design<\/h2>\n<p>Calculating the Euler&#8217;s phi function directly may be inefficient. We can precompute the primes and then use the formula defined above to calculate \u03c6(n). To do this, we design the algorithm in the following steps.<\/p>\n<ol>\n<li>First, use the Sieve of Eratosthenes to find all primes less than or equal to n.<\/li>\n<li>Use the found primes to calculate \u03c6(n).<\/li>\n<\/ol>\n<h3>3.1 Sieve of Eratosthenes<\/h3>\n<p>The Sieve of Eratosthenes is a classical algorithm for quickly finding primes. This algorithm is highly efficient with a time complexity of O(n log log n).<\/p>\n<h2>4. C++ Code Implementation<\/h2>\n<p>Now, let&#8217;s implement the complete algorithm in C++. Below is the C++ code that calculates the Euler&#8217;s phi function.<\/p>\n<pre><code>#include &lt;iostream&gt;\n#include &lt;vector&gt;\n\nusing namespace std;\n\n\/\/ Calculate Euler's phi function\nint eulerPhi(int n) {\n    int result = n; \/\/ Initial value is n\n    for (int i = 2; i * i &lt;= n; i++) {\n        \/\/ If i is a divisor of n\n        if (n % i == 0) {\n            \/\/ Adjust the result by multiplying the prime\n            while (n % i == 0) {\n                n \/= i;\n            }\n            result -= result \/ i; \/\/ Calculate the result\n        }\n    }\n    \/\/ If the remaining n is a prime\n    if (n &gt; 1) {\n        result -= result \/ n; \/\/ Process the result for the prime\n    }\n    return result;\n}\n\nint main() {\n    int n;\n    cout &lt;&lt; \"Enter an integer: \";\n    cin &gt;&gt; n;\n    \n    cout &lt;&lt; \"\u03c6(\" &lt;&lt; n &lt;&lt; \") = \" &lt;&lt; eulerPhi(n) &lt;&lt; endl;\n    return 0;\n}\n<\/code><\/pre>\n<h2>5. Code Explanation<\/h2>\n<p>The above code works in the following steps:<\/p>\n<ul>\n<li>The <code>eulerPhi(int n)<\/code> function calculates and returns the Euler&#8217;s phi function for the given integer n.<\/li>\n<li>The variable <code>result<\/code> initially holds the value of n and is updated whenever a prime is found.<\/li>\n<li>If the prime <code>i<\/code> is a divisor of n, it removes the multiples of i by dividing n by i. During this process, it adjusts the result according to the prime.<\/li>\n<li>After checking all the primes, if n is greater than 1 (i.e., n is prime), it processes it additionally.<\/li>\n<\/ul>\n<h2>6. Code Testing<\/h2>\n<p>After completing the code, we can validate the function with various test cases. For example:<\/p>\n<ul>\n<li>When n = 1, \u03c6(1) = 1<\/li>\n<li>When n = 6, \u03c6(6) = 2<\/li>\n<li>When n = 9, \u03c6(9) = 6<\/li>\n<\/ul>\n<h2>7. Performance Analysis<\/h2>\n<p>The above algorithm has a time complexity of O(\u221an) and operates relatively quickly even when n is up to 10<sup>6<\/sup>. The space complexity is O(1), indicating minimal additional memory usage. For this reason, it can be efficiently used with large datasets.<\/p>\n<h2>8. Conclusion<\/h2>\n<p>In today\u2019s post, we learned about the concept of Euler&#8217;s phi function and how to implement it in C++. The Euler&#8217;s phi function can be useful for solving various mathematical problems and plays a significant role in computer programming. Tackling such problems will greatly assist in preparing for coding tests.<\/p>\n<p>If you have any questions or feedback regarding the code, please leave a comment! In the next post, we will cover another algorithm problem. Thank you!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Understanding mathematics and algorithm problems is very important when preparing for coding tests. Today, we will discuss the Euler&#8217;s phi function and how to implement it in C++. The Euler&#8217;s phi function returns the number of positive integers less than or equal to a given integer n that are coprime to n. It has many &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34264\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;C++ Coding Test Course, Implementing Euler&#8217;s Phi Function&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[111],"tags":[],"class_list":["post-34264","post","type-post","status-publish","format-standard","hentry","category-c-coding-test-tutorials-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C++ Coding Test Course, Implementing Euler&#039;s Phi Function - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/34264\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C++ Coding Test Course, Implementing Euler&#039;s Phi Function - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Understanding mathematics and algorithm problems is very important when preparing for coding tests. Today, we will discuss the Euler&#8217;s phi function and how to implement it in C++. The Euler&#8217;s phi function returns the number of positive integers less than or equal to a given integer n that are coprime to n. It has many &hellip; \ub354 \ubcf4\uae30 &quot;C++ Coding Test Course, Implementing Euler&#8217;s Phi Function&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34264\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:26:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T10:57:56+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/34264\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34264\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"C++ Coding Test Course, Implementing Euler&#8217;s Phi Function\",\"datePublished\":\"2024-11-01T09:26:11+00:00\",\"dateModified\":\"2024-11-01T10:57:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34264\/\"},\"wordCount\":538,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"C++ Coding Test Tutorials\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34264\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34264\/\",\"name\":\"C++ Coding Test Course, Implementing Euler's Phi Function - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:26:11+00:00\",\"dateModified\":\"2024-11-01T10:57:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34264\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34264\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34264\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ Coding Test Course, Implementing Euler&#8217;s Phi Function\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C++ Coding Test Course, Implementing Euler's Phi Function - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/34264\/","og_locale":"ko_KR","og_type":"article","og_title":"C++ Coding Test Course, Implementing Euler's Phi Function - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Understanding mathematics and algorithm problems is very important when preparing for coding tests. Today, we will discuss the Euler&#8217;s phi function and how to implement it in C++. The Euler&#8217;s phi function returns the number of positive integers less than or equal to a given integer n that are coprime to n. It has many &hellip; \ub354 \ubcf4\uae30 \"C++ Coding Test Course, Implementing Euler&#8217;s Phi Function\"","og_url":"https:\/\/atmokpo.com\/w\/34264\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:26:11+00:00","article_modified_time":"2024-11-01T10:57:56+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/34264\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34264\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"C++ Coding Test Course, Implementing Euler&#8217;s Phi Function","datePublished":"2024-11-01T09:26:11+00:00","dateModified":"2024-11-01T10:57:56+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34264\/"},"wordCount":538,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["C++ Coding Test Tutorials"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34264\/","url":"https:\/\/atmokpo.com\/w\/34264\/","name":"C++ Coding Test Course, Implementing Euler's Phi Function - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:26:11+00:00","dateModified":"2024-11-01T10:57:56+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34264\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34264\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34264\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"C++ Coding Test Course, Implementing Euler&#8217;s Phi Function"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34264","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=34264"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34264\/revisions"}],"predecessor-version":[{"id":34265,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34264\/revisions\/34265"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34264"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34264"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}