int is_prime(int n)
{
int i;
int flag = 1;
for(i = 2; i <= sqrt(n);i++) /* 运行至 i*i <= n即可, 原因不明确 */
{
if(n % i == 0 ) /*原因明了,反过来想。(反证法)设n为合数
{
flag = 0; 设2~(k-1)无该整数因子且k > sqrt(n),
break; 则存在因子m > k, 而m*k > k*k > n,
} 与假设矛盾*/
}
return flag;
}
素数的判断(避免超时)
于 2022-02-13 21:33:22 首次发布