zoukankan      html  css  js  c++  java
  • Python和Java编程题(五)

    题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5 
    程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 
    (1)
    如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 
    (2)
    如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 
    (3)
    如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

    题目来源:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html

    Python实现代码:

     1 # -*- coding: -utf -*-
     2 
     3 def Factorization(n):
     4     k = 2;
     5     L = []
     6     while k < n:#从小到大依次找出Number的质因数
     7         if n%k == 0:
     8             print(k)
     9             n = n / k
    10             continue
    11         else:
    12             k = k + 1
    13     for i in range(1,k):#当k=n时,判断k是否为最大的一个质因数
    14         if k%i == 0:
    15             break
    16         if i==k-1:
    17             print(k)
    18 
    19 if __name__ == '__main__':
    20     Number = 90
    21     Factorization(Number)

    Java实现代码:

     1 public class Factorization {
     2     public void NumberFactorization(int Number) {//寻找Number所有质因数的方法
     3         int k=2;
     4         while(k<Number) {
     5             if(Number%k == 0) {
     6                 Number = Number/k;
     7                 ShowPrime(k);//输出Number质因数的方法
     8                 continue;
     9             }
    10             k = k + 1;
    11         }
    12         if(IsPrimeNumber(k)) {
    13             ShowPrime(k);
    14         }
    15     }
    16     
    17     public boolean IsPrimeNumber(int k) {//判断最后的k是不是Number的最大质因数,结果返回boolean类型的值
    18         for(int i=2;i<k;i++) {
    19             if(k%i == 0) {
    20                 return false;
    21             }
    22         }
    23         return true;
    24     }
    25     
    26     public void ShowPrime(int x) {
    27         System.out.print(x+",");//踩坑,单引号括起来的为char字符类型,双引号括起来的才是字符串
    28     }
    29     
    30     static public void main(String args[]) {//主方法中新建类并调用方法因式分解Number
    31         int Number = 90;
    32         Factorization Fa = new Factorization();
    33         Fa.NumberFactorization(Number);
    34     }
    35 }

    Java中这个单引号和双引号的坑已经是第二次踩了,容易和Python弄混淆

  • 相关阅读:
    sql 数据库 初级 个人学习总结(一)
    parentViewController
    关于iOS9之后的loadViewIfNeeded
    判断版本号
    MagicalRecord(简化CoreData操作)
    coreData
    PureLayout(轻量级自动布局)
    MJRefresh(上拉加载下拉刷新)
    MJExtension(JSON到数据模型的自动转换)
    BaceModel
  • 原文地址:https://www.cnblogs.com/xiang9286/p/9693802.html
Copyright © 2011-2022 走看看