A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李建平 黑马帝   /  2012-1-5 11:16  /  2647 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何写一个分解质因素的程序 如:435243=251*17*17*3*2

5 个回复

倒序浏览
本帖最后由 魏志雷 于 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. }
复制代码

评分

参与人数 1技术分 +2 收起 理由
吴上储 + 2

查看全部评分

回复 使用道具 举报
谢谢!
        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+"*");
                }
        }

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
李建平 发表于 2012-1-5 12:42
谢谢!
        public static void prim(int n,int m)
        {       

你这个程序有问题吧,死递归了,而且 String result写在第一句,下面的语句都不会执行了吧,噶~
回复 使用道具 举报
不懂,同问
回复 使用道具 举报
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

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马