zoukankan      html  css  js  c++  java
  • 4正整数分解质因数

    package com.test;

    import java.util.Scanner;

    import org.apache.poi.hssf.record.formula.functions.Int;

    import antlr.debug.NewLineEvent;

    public class test444 {

    /**
    * @param args
    * 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

    程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

    (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

    (2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,重复执行第一步。

    (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

    注:每个合数都可以写成几个质数相乘的形式。其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。 分解质因数只针对合数。
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    /*
    0 1 2 3 4 5 6 7 8 9 10
    0 1 2 3 4=2*2 5 6=2*3 7 8=2*2*2 9=3*3 10=2*5


    */
    FenJieZhiYinShu(6);
    /*
    System.out.println("输入所求正整数:");
    Scanner sc = new Scanner(System.in);
    Long n = sc.nextLong();
    long m=n;//m 才是要分解的合数;n只是中间用的一个数而已;
    int flag = 0;
    String[] str = new String[50];
    for (long i = 2; i <= n; i++) {//2,3,4...轮回 去 求模 取余,为零,整除(234...)的时候,表示 算一个质因数;
    if (n % i == 0) {
    str[flag] = Long.toString(i);
    flag++;//然后放在字符串数字里一次;这里表示质因数 数组里的 数 的数量,方便后面打印的;
    n = n / i;//n第一次除完后,再用取完第一个质因数剩下的n去取质因数;
    i--;//i就是质因数,为了不让她i++跳过去,就减了1;;;;直到i大于n,,,,,就是最后一个质因数? 我理解还有点问题= =,大家可以评论下...
    }
    }
    if (flag < 2)
    System.out.println(m + "为质数");
    else {
    System.out.print(m + "=" + str[0]);
    for (int k = 1; k < flag; k++) {
    System.out.print("*" + str[k]);
    }
    System.out.println("\n"+m+"共有"+flag+"个质因数.");
    }
    sc.close();
    */
    }

    public static void FenJieZhiYinShu(int x){
    int a,b,c;
    a=b=c=0;
    a = x;
    b = x;
    String[] e = new String[50];
    for(int i=2;i<=a;i++){
    if(a%i==0){//我记得是表示整除的... ;如果能被整除,才去里面取质因数;
    e[c]=String.valueOf(i);
    c++;
    a = a/i;
    i--;
    }
    }
    if(c<2)
    System.out.println(x +"是质数");
    else{
    System.out.print(x + "=" + e[0]);

    for(int k=1;k<c;k++){
    System.out.println("*"+e[k]);
    }
    System.out.println("\n"+x+"共有"+c+"个质因数");
    }

    }

    }

  • 相关阅读:
    c++中的stack实现
    非虚函数是静态绑定
    函数返回const,以便控制访问
    析构函数为虚函数
    c++中初始化列表顺序和声明顺序一致
    define的误用
    模板就是让编译器帮你写代码
    mysql代码中设置变量
    拼接index
    python import vs from import
  • 原文地址:https://www.cnblogs.com/signoffrozen/p/7117403.html
Copyright © 2011-2022 走看看