#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int x,y;
int bj,sum,bj1,sq;
while(cin>>x>>y)
{
bj=1;
if(x==0&&y==0) break;
for(int i=x;i<=y;i++)
{
bj1=1;
sum=i*i+i+41;
sq=sqrt(sum);
for(int j=2;j<=sq;j++)
{
if(sum%j==0)
{
bj1=0;
break;
}
}
if(bj1==0) {bj=0;break;}
}
if(bj==1) cout<<"OK"<<endl;
else cout<<"Sorry"<<endl;
}
}
以上代码提示编译错误、 看提示说 对重载函数的调用不明确、 查资料 终于明白。
Int型变量可以隐式的转换为各种类型,而程序中没有明确指出,编译就会出错。
应将sqt那句改为 sq=sqrt((double)sum);