#include
int prime(int n)
{
if(n<=2) return n;
int i,j,d=(int)sqrt(n);
for(i=n;i>=d;i--)
{
for(j=2;j<=d;j++)
if(i%j==0)break;
if(j>d)return i;
}
}
for(i=n;i>=d;i--)
改为
for(i=n;i>=2;i--)
这里你用d干啥呢?
另外就是prime函数没有编译器认为绝对能执行的return语句。
但这不影响最终输出正确结果