• 菜鸟涂鸦作品展_No.4


    //【程序4】 题目:将一个正整数分解质因数。
    //例如:输入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的值,重复执行第一步。
    //这个题目很明显是要用递归算法来实现的,打印“*”有些技巧,但也很容易解决,程序如下:
    import java.io.*;

    public class _4_zhiyin {
    int zuixiao(int n){
    int flag,i,j;
    labell:
    for (i=2 ; i<=n ; i++){
    flag=0;
    for (j=2 ; j<=i ; j++){
    if (i%j==0)
    flag++;
    }
    if (flag==1 && n%i==0){
    System.out.print(i);
    break labell;
    }
    }
    //System.out.print(i);
    return i;
    }
    public static void main(String[] args) throws Exception{
    _4_zhiyin z=new _4_zhiyin();
    System.out.println("输入要分解的数值");
    InputStreamReader isr=new InputStreamReader(System.in);
    BufferedReader br=new BufferedReader(isr);
    int num=Integer.parseInt(br.readLine());
    int m=1;
    System.out.print(num+"=");
    do
    {
    m=z.zuixiao(num);
    if (num>m)
    System.out.print("*");
    num=num/m;
    }
    while(num/m>=1);
    }
    }

    涂鸦心得:

      搞了一早上,搞出这么一个小东西。试用了一下I/O输入,整个机制还是没搞明白,勉强先这样用着吧。另外,如果不加throws Exception的话会报错,java的抛出异常机制也是还没有搞清。使用了Integer.parseInt,把string型改为int。动手还是有收获的,继续吧。。。

  • 相关阅读:
    mysql导入到elasticsearch
    ulimit -c unlimited
    ajax 调用后台接口示例
    完整的拆分nginx访问日志
    rsyslog input 不支持变量
    完整的多项匹配tomcat access日志的正则
    logstash 中的贪婪匹配
    logstash 内置匹配IP
    时间类处理<1>
    JS获取鼠标位置,兼容IE FF
  • 原文地址:https://www.cnblogs.com/aniuer/p/2647032.html
Copyright © 2020-2023  润新知