新手求教 c语言素数判断算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手求教 c语言素数判断算法相关的知识,希望对你有一定的参考价值。

这是我的代码,不知道当n=77这种的非素数该怎么判断,上网搜了一下代码,发现网上的都差不多是这种

他的for循环里面我看不懂,为什么没有if没有
请教各位大神向我解释一下网上的 代码,并且用我自己的代码给我举举例子 人笨没办法%>_<%

//判断一个数num是否为素数

#include <stdio.h>

int main()

int num,i,n=0;

while(1)

scanf("%d",&num);//输入一个数num

   if(num==2) printf("%d是素数\\n",num);

   else if(num>=3)

 

   for(i=1;i<=num;i++)

   if((num%i)==0) n++;

   if(n==2) printf("%d是素数\\n",num);

   else printf("%d不是素数\\n",num);

   n=0;

   else printf("%d不是素数\\n",num);

return 0;

参考技术A 就是判断从2开始到一个数的平方根中若不能被他整除,那么该数就是素数;
网上代码是若能整除则跳出,所有条件不能整除则输出是素数。
他是只需要一种判断,不满足则跳出,那么跳出后i < n,所以可以用。
你的代码思路没有错,只不过网上没有使用的优化的算法,如果你想弄明白怎么优化,那你需要在数学中找答案
参考技术B 网上的代码意思是:n就是你输入的任意数,判断它是否是素数的方法是用大于2小于n的数去除n,若能整除即不是素数,跳出循环;若数一直增加到n+1都没有被整除,即可输出“素数”。

你的源程序:3是素数,很简单,所以用if来提醒输入大于3的数,你的只是另一种素数算法,是优化的算法,更快。因为只需用2到根号a去判断。本回答被提问者采纳
参考技术C 第一个if:如果输入的数n,能够整除小于n的某一个数i,证明数n有约数i,此时break后,i的值一定是小于n的。
第二个if:如果i的值比n大,说明上述的for循环没有进入到第一个if里面,所以从2到n-1之间没有一个数是n的约数。所以可以判定n是素数。

判断素数C语言案例-循环

编程不是为了学敲代码,而是掌握逻辑与算法,解决问题的能力!

素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。

思路:因此判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。

C语言班级课程: 判断是否是素数
#include <stdio.h>int main(){ int a=0;  // 默认为素数,标记1 int num=0;  // 输入的整数 printf("输入一个整数:"); scanf("%d",&num); for(int i=2;i<num;i++) {   if(num%i==0)   {     a=0;  // 如果整除,标为0,说明不是素数    }  } if(a==1) { printf("%d是素数。\n", num); } else { printf("%d不是素数。\n", num); }return 0;}


同时我们开设了可视化课程,主要针对低年级且未接触过编程的新同学,课程内容多数改编自经典C语言例题,学习起来更easy!


可视化班级课程:求1-100内所有素数


判断素数【C语言案例-循环】


连云港唯一一家正规编程机构,非拼装类机器人!南邮、东南教授研发的从入门到参加全国信息学奥林匹克竞赛课程体系!优质竞赛教研团队!


www.lygnck.com

搜索小程序查看课程体系:青少年编程与机器人教育1



徐老师:17305185500

微信:18651728829



判断素数【C语言案例-循环】    判断素数【C语言案例-循环】

    


以上是关于新手求教 c语言素数判断算法的主要内容,如果未能解决你的问题,请参考以下文章

c语言求1-1000素数的算法问题

c语言中有没有比较简单的算法来判断两个集合有交集

C语言新手 给定一段连续的正整数,请判断其中素数的个数

求C语言中 判断素数的 代码!!!!!

c语言怎么判断一个数是素数

C语言问题 【函数与过程】回文素数