|
发表于 2013-11-17 12:10:35
|
显示全部楼层
本帖最后由 friendan 于 2013-11-17 12:30 编辑
你的程序有问题,把循环条件改下,结果就错啦!
for ( a = 0; a < 100000; ++a)
{
//....你把100000改成100,结果就错啦
//0,2,4,9,16......这些完全平方数,你的程序能解出来么?
}
如果你想优化程序,那你得理解完全平方数的相关性质和定理,
关于完全平方数,百度百科的解释如下:
http://baike.baidu.com/link?url=zJ3L5UqpaC8dQ1BdllIyU79b6mlFZmOm2QXXGwQ7dXmk_-tBjNMg1o9cY9EM4c1t
重要结论:
1.个位数是2,3,7,8的整数一定不是完全平方数;
2.个位数和十位数都是奇数的整数一定不是完全平方数;
3.个位数是6,十位数是偶数的整数一定不是完全平方数;
4.形如3n+2型的整数一定不是完全平方数;
5.形如4n+2和4n+3型的整数一定不是完全平方数;
6.形如5n±2型的整数一定不是完全平方数;
7.形如8n+2,8n+3,8n+5,8n+6,8n+7型的整数一定不是完全平方数;
8.数字和是2,3,5,6,8的整数一定不是完全平方数。
9.完全平方数的因数个数一定是奇数。
|
|