黑马程序员技术交流社区

标题: 如何写一个分解质因素的程序  [打印本页]

作者: 李建平    时间: 2012-1-5 11:16
标题: 如何写一个分解质因素的程序 
如何写一个分解质因素的程序 如:435243=251*17*17*3*2
作者: 魏志雷    时间: 2012-1-5 11:52
本帖最后由 魏志雷 于 2012-1-5 11:53 编辑

首先你给的数据错误:435243=251*17*17*3*2应该是:435234=251*17*17*3*2
  1. class Resolve
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int n=435234,i;

  6.                 for (i=2;i<=n;i++)
  7.                 {
  8.                         while(n!=i)
  9.                         {
  10.                                 if(n%i==0)
  11.                                 {
  12.                                         System.out.println(i);
  13.                                         n=n/i;
  14.                                 }
  15.                         else break;
  16.                         }
  17.                 }
  18.                 System.out.println(n);
  19.         }
  20. }
复制代码

作者: 李建平    时间: 2012-1-5 12:42
谢谢!
        public static void prim(int n,int m)
        {       
                String result;
                if(n>2){
                        while((n%m)!=0){
                                m++;
                        }
                        n=n/m;
                        //System.out.print(m+"*");
                        prim(n,m);
                        System.out.print(m+"*");
                }
        }
作者: 罗利民    时间: 2012-1-5 13:48
李建平 发表于 2012-1-5 12:42
谢谢!
        public static void prim(int n,int m)
        {       

你这个程序有问题吧,死递归了,而且 String result写在第一句,下面的语句都不会执行了吧,噶~
作者: lvwenwen88    时间: 2012-1-5 21:00
不懂,同问

作者: chocolate    时间: 2012-1-6 01:44
import java.util.Scanner;

public class Main {
        public static void main(String args[]){
                Scanner scanner=new Scanner(System.in);
                int x=scanner.nextInt();
                fun(x);
        }
        static void fun(int x){//分解正数x并将质因子输出的方法
                int i=0;
                int k=x;
                System.out.print(x+"的质因子为:");
                while(true){
                        for(i=2;i<=k;i++){
                                if(k%i==0){
                                        System.out.print(i);//i即为素因子,可传至数组另存
                                        k=k/i;
                                        break;
                                }
                        }
                        if(k==1)
                                break;
                        System.out.print(",");
                }
        }
}
样例输出:
256
256的质因子为:2,2,2,2,2,2,2,2
141
141的质因子为:3,47
100
100的质因子为:2,2,5,5
1764
1764的质因子为:2,2,3,3,7,7
5
5的质因子为:5




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2