c语习题
题目:请编写函数fun,它的功能是:判断m是否为素数。主函数的功能是:求出100到200之间的素数的
个数。
注意:勿改动其他内容
在/**********Program**********/
/**********End**********/之间填入若干语句
#include "stdio.h"
main()
{
int m,k=0;
for(m=100;m<200;m++)
if(fun(m))
{
printf("%4d",m);
k++;
if(k%5==0)
printf("\n");
}
printf("k=%d\n",k);
}
int fun(int m)
{
/**********Program**********/
/**********End**********/
}
以下是填空部分的完整代码:
#include <stdio.h>
#include <math.h>
int fun(int m) {
int i;
if (m <= 1) {
return 0;
}
for (i = 2; i <= sqrt(m); i++) {
if (m % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m, k = 0;
for (m = 100; m < 200; m++) {
if (fun(m)) {
printf("%4d", m);
k++;
if (k % 5 == 0) {
printf("\n");
}
}
}
printf("k=%d\n", k);
return 0;
}
在 fun 函数中,我们使用了试除法来判断一个数是否为素数。该函数会返回 1 表示是素数,返回 0 表示不是素数。
在 main 主函数中,我们遍历从 100 到 200 的整数,调用 fun 函数判断是否为素数。如果是素数,则打印出来,并统计个数。每行打印五个数,然后换行显示。
最后输出的 k 是素数的个数。
希望能够帮到你! 在提供的程序中,你需要在函数 fun(int m) 中填入代码以判断 m 是否为素数。素数的定义是只有两个正因数:1 和本身。这意味着,如果我们发现除了1和它本身以外的任何数字可以整除 m ,我们就可以确定 m 不是素数。我们可以通过遍历从2到根号 m 的所有数字来进行这种检查。下面是如何在 fun(int m) 中实现这个逻辑:
#include "stdio.h"
#include <math.h>
main()
{
int m,k=0;
for(m=100;m<200;m++)
if(fun(m))
{
printf("%4d",m);
k++;
if(k%5==0)
printf("\n");
}
printf("k=%d\n",k);
}
int fun(int m)
{
/**********Program**********/
int i;
for(i=2; i<=sqrt(m); i++)
{
if(m%i == 0)//如果m能被i整除,那么m不是素数
{
return 0;//返回0表示m不是素数
}
}
return 1;//如果上面的循环结束后都没有找到能够整除m的数字,那么m就是素数,返回1
/**********End**********/
}
解释:在 fun(int m) 函数中,我们使用一个循环从2遍历到 m 的平方根。对于每一个数 i ,我们检查 m 能否被 i 整除,也就是说 m%i 的值是否为0。如果 m 能被 i 整除,那么 m 就不是素数,我们返回0。如果在整个循环过程中我们都没有找到能够整除 m 的数字,那么就可以确定 m 是素数,我们返回1。这就是我们判断一个数是否为素数的方法。 #include "stdio.h"
int fun(int m);
main()
{
int m, k = 0;
for (m = 100; m < 200; m++) {
if (fun(m))
{
printf("%4d", m);
k++;
if (k % 5 == 0)
printf("\n");
}
}
printf("k=%d\n", k);
return 0;
}
int fun(int m)
{
int i;
if (m < 2)// 小于2的数不是素数
return 0;
for (i = 2; i <= m / 2; i++) {
if (m % i == 0)// 能够整除的数不是素数
return 0;
}
return 1;// 没有能够整除的数,是素数
} 在/Program/和/********** End **********/之间填入以下代码:
cCopy Codeint fun(int m)
{
if (m <= 1) {
return 0;// 不是素数
}
for (int i = 2; i * i <= m; i++) {
if (m % i == 0) {
return 0;// 不是素数
}
}
return 1;// 是素数
}
这段代码中,\fun\函数用于判断一个数是否为素数。主函数中使用循环遍历从100到199的数字,调用\fun\函数判断每个数字是否为素数,并统计素数的个数。符合条件的素数会打印出来,每行打印5个数字。最后输出素数的个数。
#include "stdio.h"
main()
{
int m,k=0;
for(m=100;m<200;m++)
if(fun(m))
{
printf("%4d",m);
k++;
if(k%5==0)
printf("\n");
}
printf("k=%d\n",k);
}
int fun(int m)
{
/**********Program**********/
int i,k=1;
if(m<=1) k=0;
for(i=2;i<m;i++)
if(m%i==0)k=0;
return k;
/**********End**********/
} @陶远航 这……? sfqxx 发表于 2023-7-23 11:48
@陶远航 这……?
???强大的新鱼油 陶远航 发表于 2023-7-23 12:07
???强大的新鱼油
直接复制代码
页:
[1]