我的程序能够判断完全数,但是当遇到很大的数的时候程序运行时间就会很长,求优化的程序
首先是有错误,第8行循环i不能从0开始,否则num%i就出问题了优化如下:
int k = sqrt(num); for(int i=1;i<=k;i++) { if(num%i==0) { res += i; if(i*i != num) res += num/i; } }
只需要num开根号次数,大大减小了
我来