用c语言补全程序:判断m是否为素数,#include<stdio.h>void wwjt ()int fun(int m){
时间: 2024-05-19 07:12:16 浏览: 109
#include<stdio.h>
void wwjt ()
int fun(int m){
int i, flag = 1;
if(m <= 1){
flag = 0;
}
for(i = 2; i <= m / 2; i++){
if(m % i == 0){
flag = 0;
break;
}
}
return flag;
}
int main(){
int m, flag;
printf("请输入一个整数:");
scanf("%d", &m);
flag = fun(m);
if(flag == 1){
printf("%d是素数\n", m);
}
else{
printf("%d不是素数\n", m);
}
return 0;
}
相关问题
利用C语言编写函数fun(int m,int *k,int xx[]),将所有大于一小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。 要求在主函数按每行10个数的格式,输出所有大于1小于整数m的非素数。 测试输入: 预期输出: 非素数个数: 所有大于1小于整数m的非素数:
以下是该函数的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int is_prime(int n) {
if (n <= 1) {
return 0;
}
int i;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
void fun(int m, int *k, int xx[]) {
int count = 0;
int i;
for (i = 2; i < m; i++) {
if (!is_prime(i)) {
xx[count] = i;
count++;
}
}
*k = count;
}
int main() {
int m;
printf("请输入一个整数m:");
scanf("%d", &m);
int xx[m - 2];
int k;
fun(m, &k, xx);
printf("非素数个数:%d\n", k);
printf("所有大于1小于整数m的非素数:\n");
int i;
for (i = 0; i < k; i++) {
printf("%d ", xx[i]);
if ((i + 1) % 10 == 0) {
printf("\n");
}
}
printf("\n");
return 0;
}
```
该函数首先定义了一个 `is_prime` 函数,用于判断一个数是否为素数。接着,`fun` 函数遍历从 2 到 m - 1 的所有数,如果某个数不是素数,就将其存入 `xx` 数组中,并将 `count` 计数器加 1。最后,将 `count` 赋值给 `k`,表示非素数的个数。
在主函数中,用户输入一个整数 `m`,然后调用 `fun` 函数计算非素数,并将结果输出。输出时,每行输出 10 个数,格式要求与题目一致。
注意,由于 `xx` 数组的大小是不确定的,我们需要使用动态内存分配来创建它。但是,这个题目输入的 m 最大只有 100,所以直接使用 `int xx[m - 2]` 定义数组即可。
请用C语言编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。
好的,以下是用C语言编写的函数`fun`:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
void fun(int m, int k, int xx[]) {
int count = 0;
int num = m + 1;
while (count < k) {
if (isPrime(num)) {
xx[count] = num;
count++;
}
num++;
}
}
int main() {
int m = 10;
int k = 5;
int xx[k];
fun(m, k, xx);
for (int i = 0; i < k; i++) {
printf("%d ", xx[i]);
}
return 0;
}
```
这个函数首先定义了一个`isPrime`函数,用于判断一个数是否是素数。然后,在`fun`函数中,使用一个循环找出大于整数m且紧靠m的k个素数,并将它们存入`xx`数组中。最后,在`main`函数中调用`fun`函数,并打印出存储在`xx`数组中的素数。
阅读全文