黑马程序员技术交流社区
标题:
如何写一个分解质因素的程序
[打印本页]
作者:
李建平
时间:
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
class Resolve
{
public static void main(String[] args)
{
int n=435234,i;
for (i=2;i<=n;i++)
{
while(n!=i)
{
if(n%i==0)
{
System.out.println(i);
n=n/i;
}
else break;
}
}
System.out.println(n);
}
}
复制代码
作者:
李建平
时间:
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