解题思路:isprime 函数用于判断一个整数是否为素数。
首先处理一些特殊情况,如果 n 小于等于 1 则不是素数,如果小于等于 3 则是素数,如果能被 2 或 3 整除也不是素数。
然后通过一个从 5 开始,步长为 6 的循环来判断能否被其他可能的数整除,如果能则不是素数,否则是素数。
main 函数的功能是读入一个整数 n ,然后通过三层循环遍历小于等于 n 的所有可能的素数 a 、 b 、 c ,找到满足 a + b + c == n 的组合,并输出相应的等式。
注意事项:
参考代码:
#include <stdio.h>
#include <math.h>
int isprime(int n) {
int i;
if (n <= 1) return 0;
if (n <= 3) return 1;
if (n % 2 == 0 || n % 3 == 0) return 0;
for (i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) return 0;
}
return 1;
}
int main() {
int n, a, b, c;
scanf("%d", &n);
for (a = 2; a <= n; a++) {
if (isprime(a)) {
for (b = 2; b <= n; b++) {
if (isprime(b)) {
for (c = 2; c <= n; c++) {
if (isprime(c) && a + b + c == n) {
printf("%d=%d+%d+%d\n", n, a, b, c);
}
}
}
}
}
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复