C语言 其中n<number/2&&flag==1是什么意思
C语言其中n<number/2&&flag==1是什么意思其中n<number/2&&flag==1是什么意思...
C语言 其中n<number/2&&flag==1是什么意思其中n<number/2&&flag==1是什么意思
展开
2个回答
展开全部
根据素数的数学定义
只有1和本身是因子。
所以 这里通过判断 从2到number/2中是否存在因子来确定是否为素数。 如果存在 那么表示不是素数。 否则是素数。
于是 当n>number/2时退出循环。 这种情况下,number为素数
另外一种情况,就是当flag==0,也就是出现了因子的情况下,确定非素数。一样退出循环。
所以 循环条件写了n<number/2 && flag==1
其实这里是有问题的。
改成n<=sqrt(number)更好。
或者用n<=number/2
否则当number=4的时候 判断会出错。
只有1和本身是因子。
所以 这里通过判断 从2到number/2中是否存在因子来确定是否为素数。 如果存在 那么表示不是素数。 否则是素数。
于是 当n>number/2时退出循环。 这种情况下,number为素数
另外一种情况,就是当flag==0,也就是出现了因子的情况下,确定非素数。一样退出循环。
所以 循环条件写了n<number/2 && flag==1
其实这里是有问题的。
改成n<=sqrt(number)更好。
或者用n<=number/2
否则当number=4的时候 判断会出错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询