题目
解决代码及点评判断一个数是不是素数的方法,一般是看n是不是能被n以内的某个整数(1除外)整除 为了提高效率,这个整数范围一般缩小到n的平方根 如果在这个范围内的整数都不能整除,那么说明它是素数
- <pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"></pre><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code">/************************************************************************/
- /*
- 8.判断一个数是否是素数
- */
- /************************************************************************/
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- bool f48(int num) // 判断num是不是素数
- {
- if (num<2) // 如果num小于2,必然不是素数
- return false;</pre><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"> if (num==2) // 如果num是2,则肯定是素数
- {
- return true;
- }</pre><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"> // 从2循环到num的平方根
- for (int i=2;i<=sqrt((double)num);i++)
- {
- if (num%i==0) // 如果发现有整除
- {
- return false; // 那么不是素数,函数在这里就结束了
- }
- }
- return true; // 如果程序运行到这里,那么说明这个数是素数
- }
- void main()
- {
-
- int num;
- printf("please input a num\n");
- scanf_s("%d",&num);
- if (f48(num))
- {
- printf("是素数");
- }
- else
- {
- printf("不是素数");
- }
- system("pause");
- }</pre><br><br></pre>
|