。/。

iNOC产品部--完全数计算

http://www.nowcoder.com/questionTerminal/7299c12e6abb437c87ad3e712383ff84

看着这么简单一道题那些答案里的花里胡哨还是贴了上来。。。

public class TotalNum {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
int a = sc.nextInt();
int count = 0;
for (int i = 2; i <= a; i++) {
if (aaa(i)){
count++;
}
}
System.out.println(count);

}


}
public static boolean aaa(int num){
int sum = 0;
for (int i = 2; i < num; i++) {
if (num % i == 0){
sum += i;

}
}
if (sum + 1 == num){
return true;
}
return false;



}


}
全部评论
历遍算法是方便,但确定这样想都不想的历遍时间上来得及?500000附近的极限速度测试好像超过1s了,个人建议在完全数判断时先开方对称做,如果累计时超出了就直接返回false,这样可以快速抛弃掉绝大多数非完全数
3 回复 分享
发布于 2021-09-03 16:04
算法是有优劣的,遍历是效率比较低下的那种。。。。
1 回复 分享
发布于 2022-09-17 01:31 广东
排版灾难。
点赞 回复 分享
发布于 2021-12-07 22:47
点赞 回复 分享
发布于 2021-08-30 23:40

相关推荐

05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
15
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务