帮我看看我这个程序的问题

来源:百度知道 编辑:UC知道 时间:2024/05/11 00:59:15
请编一个函数int fun(int a),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0。A的值由主函数从键盘读入。
#include<stdio.h>
#include<stdio.h>
int fun(int a)
{
int k,i;
k=sqrt(a);
for(i=2;i<=k;i++)
{
if(a%i==0)
{
break;
}
if(a%i==0)
{
return 0;
}
if(i>k)
{
return 1;
}
}

}
void main()
{
int a;
printf("请输入一个整数:");
scanf("%d",&a);
printf("若a是素数,返回1;若不是素数,返回0:\n");
printf("%d\n",fun(a));

}

编写思路有点不清楚,i是代表要输入的数字吗?

我把函数部分代码给你简化一下,不要弄你这么复杂,修改后的函数代码如下:

int fun(int a)
{
int k,i;
k=sqrt(a);
for(i=2;i<=k;i++) if(a%i==0) return 0;
return 1;
}

现在这样就非常容易理解了,只要一但发现有形式参数a的因子,那么立即推出函数返回0,for循环执行完毕都没有找到因子就返回1。