犯了这种错误都能得70分?
查看原帖
犯了这种错误都能得70分?
609990
wyy_2010楼主2025/7/28 16:24

我的代码有一个特别离谱的错误还能得70分 在用线性筛处理最小质因子时,我写了:

for(int i = 2; i <= n; i++)
    {
        if(is_prime[i])
        {
            prime[++tot] = i;
            mqf[i] = i;
        }
        for(int j = 1; j <= tot; j++)
        {
            if((long long)prime[j] * i > n)
                break;
            is_prime[i] = false;
            mqf[i] = prime[j];
            if(i % prime[j] == 0)
                break;
        }
    }

(mqf[i]存i的最小质因子) 注意第12行,正确的写法应该是:

mqf[i * prime[j]] = prime[j];

(即i*prime[j]的最小质因数是prime[j])

而原代码写成了:i的最小质因子是prime[j] 这么离谱的错误竟然不影响我通过样例并拿70分??!

2025/7/28 16:24
加载中...