作业帮 > 综合 > 作业

请问这个程序每一步是什么意思?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 12:25:26
请问这个程序每一步是什么意思?
#include
void main()
{
void shusu_(int z);
int n;
printf("please enter n:\n");
scanf("%d",&n);
shusu_(n);
}
void shusu_(int z)
{
int i,flag=1;
if(z==2||z==1)
printf("this is shusu\n");
else
{ for(i=z-1;i>2;i--)
{
if(z%i==0)
{flag=0;break;
}
}
if(flag)
printf("this is shusu\n");
else
printf("this is wrong\n");
}
}
#include
void main()
{
void shusu_(int z); /*对被调用的函数的声明*/
int n;
printf("please enter n:\n");
scanf("%d",&n); /* 输入一个整型数据n */
shusu_(n); /*调用函数*/
}
void shusu_(int z) /*函数部分*/
{
int i,flag=1;
if(z==2||z==1) /*如果z=1和2,它就是一个素数*/
printf("this is shusu\n");
else
{ for(i=z-1;i>2;i--)
{
if(z%i==0) /*如果z大于2以上:z和i的余数等于0,表是不是素数,这flag=0,停止循环*/
{flag=0;break;
}
}
if(flag) /*如果flag为真,这个数是素数*/
printf("this is shusu\n");
else
printf("this is wrong\n"); /*否着不是素数*/
}
}
你这里如果是4,结果是素数,因为4是2*2是2的倍数
你把被2整除给除开了
这里要for(i=z-1;i>2;i--);改为
for(i=z-1;i>1;i--)改为1,就把2包在里面了.OK!