码农谷 找出N之内的所有完数
题目描述
一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子。
输入描述
N
输出描述
? its factors are ? ? ?
样例
输入:
1000
输出:
6 its factors are 1 2 3 28 its factors are 1 2 4 7 14 496 its factors are 1 2 4 8 16 31 62 124 248 ======================================================第一次code:
1 import java.util.*; 2 3 public class HelloWorld 4 { 5 public static void main(String[] args) 6 { 7 Scanner input = new Scanner(System.in); 8 int n = input.nextInt(); 9 start(run(n)); 10 } /** * 求n以内的所有数的因数 * 每个数的所有因数以逗号为分隔,存到一个字符串数组 * 将所有数的因数集存到一个字符串中 */ 11 public static String[] run(int n) 12 { 13 String a="",c=""; 14 String [] b = new String[n+1]; 15 for(int i=1;i<n+1;i++) 16 { 17 for(int j=1;j<i;j++) 18 { 19 if(i % j ==0) 20 { 21 a=String.valueOf(j)+","; 22 c +=a; 23 } 24 } 25 b[i] = c; 26 c=""; 27 } 28 return b; 29 } /** * 将字符串以逗号为分界,切割成数组 * 对数组和数组的下标进行比较 * 如果匹配成功,则输出结果 */ 30 public static void start(String[] b) 31 { 32 for(int i=2;i<b.length;i++) 33 { 34 String[]c=b[i].split(","); 35 int x = 0; 36 String o,w=""; 37 int [][] a = new int[b.length][c.length]; 38 for(int k=0;k<c.length;k++) 39 { 40 a[i-2][k]=Integer.parseInt(c[k]); 41 x += a[i-2][k]; 42 } 43 if(x==i) 44 { 45 for(int k=0;k<c.length;k++) 46 { 47 o = String.valueOf(a[i-2][k]); 48 w +=(" "+o); 49 } 50 System.out.println(i+" its factors are"+w); 51 } 52 } 53 } 54 }
测试结果显示,求1000的完数,耗费时间为76毫秒;求2000以内的完数,所耗时间为251毫秒;求10000以内的完数,所耗时间为6195毫秒。
时间效率不高,必须得提高。
转载于:https://www.cnblogs.com/niithub/p/5801648.html
码农谷 找出N之内的所有完数相关推荐
- ACMNO.11 一个数如果恰好等于它的因子之和,这个数就称为“完数“。 例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数“。 编程序找出N之内的所有完数,并按下面格式输出其因子
写在前面,心得感悟~ 代码越来越有难度! 这个ACM题,我调试了 将近50次~ 一个小时! 真的是,年纪轻轻的搞什么ACM呀! 关于题的解决思路放在下面再写吧! 题目描述 一个数如果恰好等于它的因子之 ...
- C语言学习之一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数。
一个数如果恰好等于它的因子之和,这个数就称为"完数".例如:6的因子为1,2,3,而6=1+2+3,因此6是"完数".编程序找出1000之内的所有完数,并按下面 ...
- python实现一个数如果恰好等于它的因子之和,这个数就称为“完数” 。例如, 6的因子为 1、2、3,而 6=1+2+3,因此 6 是完数。编程找出1000之内的所有完数
一个数如果恰好等于它的因子之和,这个数就称为"完数" . 例如, 6 的因子为 1.2.3,同时6=1+2+3,因此 6 是完数. 编程找出 1000 之内的所有完数,并输出该完数 ...
- 找出1000之内的所有完数
一个数如果恰好等于它的因子之和,这个数就称为"完数".例如,6的因子为1,2,3,而6=1+2+3,因此6是"完数".编程序找出1000之内的所有完数,并按照下 ...
- 如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数。
如果一个数等于它的因子之和,则称该数为"完数"(或"完全数").例如,6的因子为1.2.3,而6=1+2+3,因此6是"完数".编程找出10 ...
- c语言:编程找出1000之内的所有完数。
一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6的因子为1,2,3,6=1+2+3,因此6是"完数".编程找出1000之内的所有完数. 程序: #i ...
- 一个数如果恰好等于它的因子之和,这个数就称为“完数“。例如,6的因子1,2,3而6 = 1+2+3,因此6是完数。编程序找出1000之内的所有完数
一个数如果恰好等于它的因子之和,这个数就称为"完数".例如,6的因子1,2,3而6 = 1+2+3,因此6是完数.编程序找出1000之内的所有完数 #include <std ...
- python求完数的因子_「每日一练」巧用python找出1000以内的所有完数
原标题:「每日一练」巧用python找出1000以内的所有完数 "完数"指的是一个数恰巧等于它的所有因子之和,比如说6,它的因子分别是1,2,3,而6正好等于1+2+3,所以6就是 ...
- C语言编程找出1000以内的所有完数
问题描述:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. 问题分析:控制好for循环是关键 程序源码: #include ...
- 找出1000以内的所有完数。
1 ''' 2 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程 3 找出1000以内的所有完数. 4 ''' 5 # 报错是因为之前定义了sum= ...
最新文章
- 谢文睿:西瓜书 + 南瓜书 吃瓜系列 4. 二分类线性判别分析
- Java基础学习总结(6)——面向对象
- android:windowBackground 和 android:background 的区别
- Service Mesh 是什么,我们为什么需要它?
- ISO 5 Lecture for Micro-Macro Interactions
- 使用C#进行Word 2002和Excel 2002编程
- HBase体系架构说明
- python遗传算法工具箱的使用_遗传算法的python实现,非常值得看的一篇文章
- linux集群启动脚本,Hadoop2.2.0集群启动和停止Shell脚本
- Java 9 揭秘(15. 增强的弃用注解)
- 三屏设置相关技术收集
- pk8/x509.pem转换为keystore
- 回溯(backtrack)
- 火车头文章标题伪原创插件(文章双标题插件)
- 逻辑回归算法梳理(从理论到示例)
- 银行卡四元素/四要素校验API,银行卡实名认证接口文档
- 2022微软苏州Software Engineer校招暑期实习生二面
- 全志V3S H.264 对视频进行编码的过程
- 盐城北大青鸟东台基地学员生日会 | 美好的时光里,你我同在
- uva 10306(完全背包)