题目描述 求[k1,k2]之间的所有素数。 输入要求 主函数中输入两个整数k1和k2。(3≤k1≤10000,3≤k2≤10000) 输出要求 设计函数判断是否素数并返回判断结果。在主函数中对所有素数进行输出。 输入样例 100 200 输出样例 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 模板 #include <stdio.h> #include <math.h> @-@ //设计判断n是否素数的函数 int main() { int k1,k2,i,cnt=0; int p=0; scanf("%d%d",&k1,&k2); for(i=k1; i<=k2; i++) { p=is_prime(i); //调用判断素数的函数,判断当前i是否素数 if(p==1) { printf ("%-6d", i); cnt++; if (cnt%5 == 0) printf("\n"); } } printf ("\n"); return 0; } 提示 程序填空题,模板中@-@的位置是需要填空的部分。
时间: 2024-02-10 18:12:13 浏览: 92
输入一个整数,判断2~n之间的素数并输出
4星 · 用户满意度95%
根据题目描述,求 [k1,k2] 之间的所有素数。可以使用下面的 C 语言代码实现:
```c
#include <stdio.h>
#include <math.h>
//设计判断 n 是否素数的函数
int is_prime(int n) {
int i;
if (n <= 1) {
return 0;
}
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int k1, k2, i, cnt = 0;
int p = 0;
scanf("%d%d", &k1, &k2);
for (i = k1; i <= k2; i++) {
p = is_prime(i); //调用判断素数的函数,判断当前i是否素数
if (p == 1) {
printf("%-6d", i);
cnt++;
if (cnt % 5 == 0) {
printf("\n");
}
}
}
printf("\n");
return 0;
}
```
这个程序首先定义了一个 `is_prime()` 函数,该函数用于判断一个整数是否为素数。如果输入的 n 小于等于 1,函数返回 0;否则,函数从 2 开始遍历到 sqrt(n),如果 n 能被任何一个小于等于 sqrt(n) 的数整除,则返回 0;否则,返回 1。在 `main()` 函数中,使用 `scanf()` 函数读入两个整数 k1 和 k2,然后使用 `for` 循环语句遍历从 k1 到 k2 的所有整数,依次调用 `is_prime()` 函数判断当前整数是否为素数。如果是素数,则输出该整数,并将计数器 `cnt` 的值加 1。如果计数器 `cnt` 是 5 的倍数,则输出一个换行符。最后,使用 `printf()` 函数输出一个换行符,结束程序。
阅读全文