c语言if else嵌套c语言

scanf ("%d", &m);
if ( m <= 1) {
is_prime = 0;
} else if (m == 2) {
is_prime = 1;
} else if (m % 2 == 0) {
is_prime = 0;
} else{
is_prime = 1;
}
limit = sqrt(m) + 1;
for(i = 3; i <= limit; i += 2){
if(m % i == 0){
is_prime = 0;
break;
}
}
输入11为啥is_prime是11呢

scanf ("%d", &m);
if ( m <= 1) {
    is_prime = 0; 
} else if (m == 2) { 
    is_prime = 1;
} else if (m % 2 == 0) {
    is_prime = 0;
} else{    // m=11 走这个分支, is_prime = 1
    is_prime = 1;
}
limit = sqrt(m) + 1;    // limit = 4
for(i = 3; i <= limit; i += 2){ 
    if(m % i == 0){   // 11 % 3 = 2
        is_prime = 0; 
        break; 
    }
}

所以最终is_prime=1

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网