码迷,mamicode.com
首页 > 编程语言 > 详细

Python和Java编程题(一)

时间:2018-09-18 22:49:34      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:编程   博客   html   mat   java编程   system   python   oid   public   

今天偶尔看到一个博客有贴了五十个编程题,决定以后两天左右做一道题

题目来源: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编程题(一)

标签:编程   博客   html   mat   java编程   system   python   oid   public   

原文地址:https://www.cnblogs.com/xiang9286/p/9671391.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!