请问:c语言中,k<=m&&(m%k)是什么意思?
题目:判断是否为素数,是则返回1,否则返回0.答案:intfun(intm){intk=2;while(k<=m&&(m%k))k++;if(m==k)return1;e...
题目:判断是否为素数,是则返回1,否则返回0.
答案:int fun(int m)
{
int k = 2;
while(k <= m&&(m%k))
k++;
if(m == k)
return1;
else
return0;
问:1)k<=m&&(m%k)的(m%k)是什么意思?取余?
2)那取的余数为多少呢?
3)要是写成(m%k==0)对么? 展开
答案:int fun(int m)
{
int k = 2;
while(k <= m&&(m%k))
k++;
if(m == k)
return1;
else
return0;
问:1)k<=m&&(m%k)的(m%k)是什么意思?取余?
2)那取的余数为多少呢?
3)要是写成(m%k==0)对么? 展开
3个回答
展开全部
m%k是取余
取得余数如果为0则不是素数 否则为素数
不行 可能m为他自己 素数必须是任何不为1和他自己的数 你必须这么写 ((m%k==0)&(m!=k))
我把我的取素数源码给你看看吧
#include<stdio.h>
main()
{
while(1)
{
int a,c=0;
long b;
printf("欢迎使用小凯求素数软件\n");
printf("请输入需要验证的数:");
scanf("%d",&a);
for(b=2;b<=100000;b++)
{
if((a%b==0)&&(a!=b))
{
printf("%d为素数.\n\n\n\n\n",a);
c=1;
break;
}
}
if(c==0)
{
printf("%d不是素数.\n\n\n\n\n",a);
}
}
}
取得余数如果为0则不是素数 否则为素数
不行 可能m为他自己 素数必须是任何不为1和他自己的数 你必须这么写 ((m%k==0)&(m!=k))
我把我的取素数源码给你看看吧
#include<stdio.h>
main()
{
while(1)
{
int a,c=0;
long b;
printf("欢迎使用小凯求素数软件\n");
printf("请输入需要验证的数:");
scanf("%d",&a);
for(b=2;b<=100000;b++)
{
if((a%b==0)&&(a!=b))
{
printf("%d为素数.\n\n\n\n\n",a);
c=1;
break;
}
}
if(c==0)
{
printf("%d不是素数.\n\n\n\n\n",a);
}
}
}
更多追问追答
追问
素数不是除了1和此整数自身外,不能被其他自然数整除的数么?也就是说,只有1和此整数自身能够整除,那怎么感觉m必须等于k啊?
追答
如果m等于k 那么任何一个数都是素数 包括5 7 11
展开全部
m%k是取余数,如果余数为0表示 k可以整除m,而(m%k)这个表达式也为假,意味着表达式不成立,即m不为素数,而k从2取到m,如果中间被整除即 k就不能达到m即返回0表示 不为素数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询