好的,我的确没调试过,但是我调试之后得到了同样的结论
1+3=4 1+5=6就是你说的答案吗,拜托,1不是质数,我本来以为你把3改成1不会影响结果,但是后来仔细看看你的素数判断就有问题,会把1当成质数(正确的如下,自己对照一下)
原来的程序确实解决不了两个相等质数的问题,例如你输入34也不会出现17+17的结果(你可以试试),解释我保留原来的不变
//正确的试除法判断质数
bool isPrime(int num)
{
if(num<=1)return false;
for(int i=2;i<=sqrt(num);i++)//我忘记sqrt有没有重载了,有的话需要强制转换参数类型
if(num%i==0)return false;
return true;
}