C语言,找20000以内的最大质数。 为什么我的代码不适用于10000以上的数字?

日期:2019-10-18 22:38:25 人气:1

C语言,找20000以内的最大质数。 为什么我的代码不适用于10000以上的数字?

删除maximum = maximum - 1;??在这里无错,但最大的就是质数呢? 把for (j = 2; j < i; j++)改成for (j = 2; j*j<= i; j++)??大于i方根的整数无须检查,因为肯定不能整除,白白浪费时间资源。 把if (i % j == 0)的体i--;改为break;??i--;有漏洞,比如25%7!=0,但25%5==0,就是说无大数因子并不能保证无小一些的因子,所以每次的j都得从2开始检查。 把return i;改成if(j*j>=i)
    A+
热门评论