Python和Java编程题(一),,今天偶尔看到一个博客
Python和Java编程题(一),,今天偶尔看到一个博客
今天偶尔看到一个博客有贴了五十个编程题,决定以后两天左右做一道题
题目来源:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html
1.题目
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
2.Java实现
Java中的通过创建对象,再来调用方法解决问题思想还是不太熟练
1 public class ProfectNumber { 2 /* 3 * 定义计算数字的因子总和 4 */ 5 public void GetProfectNumber(int a) { 6 for(int i=2;i<a;i++) { 7 int Sum = 0; 8 for(int j=1;j<i;j++) {// 求数字i的出本身之外的因子 9 if(i%j==0) {10 Sum += j;11 }12 }13 if(i==Sum) {14 System.out.print(i+"、");15 }16 }17 }18 19 public static void main(String args[]) {20 ProfectNumber p = new ProfectNumber();//新建此类对象21 p.GetProfectNumber(1000);//调用计算完数方法22 }23 }
3.Python实现
1 # -*- coding: utf-8 -*- 2 # 一个数等于除它本身之外的因子之和,称为完数 3 def Factor(a, L): 4 for j in range(1,a): 5 if a%j == 0: 6 L.append(j) 7 return L 8 9 if __name__ == ‘__main__‘:10 ProNumber = []11 for i in range(2,1000):# 1不是完数,可以排除12 A = []13 FactorList = Factor(i, A)14 if sum(FactorList) == i:15 ProNumber.append(i)16 print("1000以内总共有{}个完数,分别是".format(len(ProNumber)))17 for index in range(0,len(ProNumber)):18 print(ProNumber[index])
Python和Java编程题(一)
评论关闭