应该是样判断 if (Math.sqrt(li) == (int)Math.sqrt(li))浮点数计算可能有误差,不行这样试试if (Math.abs(Math.sqrt(li) - Math.round(ath.sqrt(li))) < 0.000001)如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮
用long型不够啊,因为N允许到10000,那么10000的三次方用long型存储会溢出的,肯定不行。改成long long类型