将一个正整数分解质因数
2015-08-15 09:29
281 查看
//由于设置的数组大小为100,当输入的数字过大时该算法无效,如输入213213
import java.util.Scanner;
public class fenjie2
{
int[] result=new int[100];
int x=0;
public static boolean isPrime(int n)
{
if(n==2) return true;
for(int i=2;i<Math.sqrt(n);i++)
{
if(n%i==0)
return false;
}
return true;
}
public static int[] minPrime(int n)
{
int[] pri=new int[100];
int a=0;
for(int i=2;i<=n;i++)
{
if(isPrime(i))
{
pri[a++]=i;
}
}
return pri;
}
public void dispose(int n)
{
int j;
int[] min=fenjie2.minPrime(n);
for(j=0;j<min.length;j++)
{
if(n%min[j]==0)
{
this.result[x++]=min[j];
if(n==min[j]) return ;
break;
}
}
System.out.println("得到的j为:"+j);
this.dispose(n/min[j]);
}
public static void main(String[] args) throws Exception
{
Scanner input=new Scanner(System.in);
fenjie2 obj=new fenjie2();
String s="";
String go;
System.out.println("请输入数字:");
int num=input.nextInt();
obj.dispose(num);
for(int i=0;i<obj.result.length;i++)
{
if(obj.result[i]>0)
{
s +=obj.result[i]+"*";
}
}
System.out.println(num+"="+s.substring(0,s.length()-1));
System.out.println("结束!");
}
}
import java.util.Scanner;
public class fenjie2
{
int[] result=new int[100];
int x=0;
public static boolean isPrime(int n)
{
if(n==2) return true;
for(int i=2;i<Math.sqrt(n);i++)
{
if(n%i==0)
return false;
}
return true;
}
public static int[] minPrime(int n)
{
int[] pri=new int[100];
int a=0;
for(int i=2;i<=n;i++)
{
if(isPrime(i))
{
pri[a++]=i;
}
}
return pri;
}
public void dispose(int n)
{
int j;
int[] min=fenjie2.minPrime(n);
for(j=0;j<min.length;j++)
{
if(n%min[j]==0)
{
this.result[x++]=min[j];
if(n==min[j]) return ;
break;
}
}
System.out.println("得到的j为:"+j);
this.dispose(n/min[j]);
}
public static void main(String[] args) throws Exception
{
Scanner input=new Scanner(System.in);
fenjie2 obj=new fenjie2();
String s="";
String go;
System.out.println("请输入数字:");
int num=input.nextInt();
obj.dispose(num);
for(int i=0;i<obj.result.length;i++)
{
if(obj.result[i]>0)
{
s +=obj.result[i]+"*";
}
}
System.out.println(num+"="+s.substring(0,s.length()-1));
System.out.println("结束!");
}
}
相关文章推荐
- Backup and Recovery Strategies1
- 在JavaScript的jQuery库中操作AJAX的方法讲解
- 3.Python 条件if
- HTML表格标签
- hdu 4738 Caocao's Bridges
- 九月腾讯,创新工场,淘宝等公司最新面试三十题(第171-200题)
- 存储过程
- 如何搞定tomcat这只喵~
- 在C、C++中调用Matlab
- hdu3652(含有13且能被13整除的数)数位DP基础
- hdu5389
- HDU 1796 How many integers can you find (容斥定理 + 二进制)
- 我的博客
- 黑马程序员——集合类
- 字典树模版
- BASH
- 黑马程序员——String
- Ubuntu 有望让你安装最新 Nvidia Linux 驱动更简单
- 解决A master URL must be set in your configuration
- 【C语言经典实例】-选择排序