sum=sum+1的位置不正确,比如j=5时,i=2,i=3,i=4时sum都要加1。而你要的只是sum只加一次。所以应将sum=sum=1提到第二个循环外。for(i=2;i<=n;i++){ for(j=2;j if(i%j==0) break; } if(j==i) sum=sum+1; }