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编程题(一)

评论关闭