c语言求哥德巴赫猜想#include int main(){int n,m,k,misprime,nmisprime;for(n = 6;n

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/24 23:46:26
c语言求哥德巴赫猜想#include int main(){int n,m,k,misprime,nmisprime;for(n = 6;n

c语言求哥德巴赫猜想#include int main(){int n,m,k,misprime,nmisprime;for(n = 6;n
c语言求哥德巴赫猜想
#include
int main()
{
int n,m,k,misprime,nmisprime;
for(n = 6;n

c语言求哥德巴赫猜想#include int main(){int n,m,k,misprime,nmisprime;for(n = 6;n
这个程序的逻辑是有点问题,之所以不出错就是因为misprime的值一直是1.一直是1的原因是因为n的循环次数内,哥德巴赫猜想一直成立,成立时misprime和nmisprime都是1.
两个嵌套的for循环是用来判断m和n-m是否是质数,在for循环进不去的情况下:
能肯定m及n-m等于3,因为m是从3开始的,且每次加2;k从2开始,k*k小于等于m不成立,那么m一定是3,所以for进不去时m的值一定是3,那就一定是质数,这时候应该对misprime赋值为1,而巧合的是misprime的值一直等于1,所以程序运行也就没出异常.
正常的逻辑应该加上当for进不去时,也就是在for后面判断k的值,如果k为2证明for循环没进去,那么对misprime赋值为1.