解题思路:
题目要求是让我们写两个函数,一个是判断素数函数judge,另一个是主函数main;在judge中判断传过来的实参m要先判断是否是大于等于2的数,只有m>=2才可以判定它是不是素数,所以说输入的数要符合要求。接下来就是如何判断是素数,素数是指除了1和本身以外不能再被其他数整除的数,于是利用取余法,设for(i=2;i<m;i++) if(m%i==0),则不是素数,break终止循环;否则如果是素数,也要break终止循环。
注意事项:
无论是判断得到是素数或者不是素数,只要得到结果,就立即break终止循环。
参考代码:
#include<stdio.h>
int judge(int m)
{
int i;
if(m>=2)
{
for(i=2;i<m;i++)
{
if(m%i==0)
{
printf("not prime\n");
break;
}
else
{
printf("prime\n");
break;
}
}
}
return 0;
}
int main()
{
int m;
scanf("%d",&m);
judge(m);
return 0;
}
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<stdio.h> #include<math.h> void panduan(int x); int main() { int n; scanf("%d",&n); panduan(n); return 0; } void panduan(int x) { int tag=0; for(int i=2;i<=sqrt(x);i++) if(x%i==0) tag++; if(tag==0) printf("prime\n"); else printf("not prime\n"); }#include <stdio.h> int judge(int m) { int i; if(m==2) { printf("prime\n"); } else if(m>2) { for(i=2;i<m;i++) { if(m%i==0) { printf("not prime\n"); break; } else { printf("prime\n"); break; } } } } int main() { int m; scanf("%d",&m); judge(m); return 0; } 再来个if else就好了。