求JAVA代码!!!
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5,输入80,打印出80=2*2*2*2*5.(要求不能用while语句)
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5,输入80,打印出80=2*2*2*2*5.(要求不能用while语句)
解决方案 »
- poi 的 setColorAtIndex小问题
- SCJP线程题目 求教
- 大学考试机试试题,有点麻烦...
- 请大家推荐几本能够深入学习Java的好书,谢谢了 !
- Java 如何实现录制屏幕视频呢?
- 字符串处理问题,高手指教!!在线等
- Jbuilder 写的程序如何拿到其他电脑运行.
- java怎样实现C语言的两日期之差与求日期增减天数后的新日期,请举个小例!
- 一个关于邮件附件格式的问题,请进来看看!
- 有谁作过网站的登陆系统呀,能不能讲一讲整个流程和加载网页时的控制方法呀
- 我无法打开applet小程序(新手,没有分,不好意思)
- Applet初始化时java.lang.Error: Unresolved compilation problems问题
=============\
那for行不行!?
============
晕
和
for(;true;)
又有什么区别呢
StringBuffer str = new StringBuffer();
str.append(n+"=");
if(n<=3){
str.append(n);
return str.toString();
}
for(int i=2; i<=n/2; i++){
if (n%i==0){
str.append(i+"*");
n=n/i;
i=1;
}
}
str.append(n);
return str.toString();
}
有说话的,但为什么没有写代码的?!
期待其他更多不同的代码!
{
if(num==1)
{
System.out.print("1");
}
else
{
for(int i=2;i<=num;i++)
{
if(num%i==0)
{
System.out.print(i+"*");
num = num/i;
break;
}
}
zhi(num);
}
}
{
if(num==1)
{
System.out.print("1");
}
else
{
for(int i=2;i<=num;i++)
{
if(num%i==0)
{
System.out.print(i+"*");
num = num/i;
break;
}
}
zhi(num);
}
}----------------
漂亮!不过最后的*1有什么办法把它去除不……
{
int Fdata;
factor(int dd)
{
Fdata = dd;
ToFactor(Fdata,2);
}
void ToFactor(int Td,int FacNum)
{
if(Td != FacNum)
{
if(Td%FacNum == 0)
{
System.out.print(FacNum+"*");
ToFactor(Td/FacNum,2);
}
else
{
ToFactor(Td,FacNum+1);
}
}
else
{
System.out.print(FacNum);
}
}
}
public class ABC
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int data = sc.nextInt();
new factor(data);
}
}
你的程序好象会出问题,程序解出的不全是质数!!!
{
int Fdata;
factor(int dd)
{
Fdata = dd;
ToFactor(Fdata,2);
}
void ToFactor(int Td,int FacNum)
{
if(Td != FacNum)
{
if(Td%FacNum == 0)
{
System.out.print(FacNum+"*");
ToFactor(Td/FacNum,2);
}
else
{
ToFactor(Td,FacNum+1);
}
}
else
{
System.out.print(FacNum);
}
}
}
public class ABC
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int data = sc.nextInt();
new factor(data);
}
}
==============================================================
顶,顶,顶……………………
poorb() 高手!!!
半年后达这个水平就不错了!
public class Math
{
public static void main(String[] args)
{
String input = JOptionPane.showInputDialog("请输入正整数:");/*能输出一个输入图形框*/
int num = Integer.parseInt(input);//输入的字符串转换成整数 if (num == 1) //输入为1,直接输出
{
System.out.print("num=1");
}
else
{
System.out.print("num=");
for (int i = 2; i <= num; i++)
{
if (num % i == 0)
{
System.out.print(i);
num = num / i;
if(num!=1)//这个if语句解决楼上说的多一个"*"问题
{
System.out.print("*");
}
i--;//防止它只除一次质因数
}
if (num == 1) //整除完后值为1跳出
{
break; }
}
}
System.exit(0);//输入的图形框结束语句
}
}程序在Jbuilder下能正常运行,但自己不明白一个问题,除去那个多的"*"号用"\b"退一格就行了,为什么实际操作时"\b"不起作用,但"\n"却能换行,请高手指点一下原因,关于java中退格的应用
--> for(int i=2;i<=Math.sqrt(num);i++)
public class A {
public static void main(String[] args) {
int n = 1000;
getZS(n);
} static boolean finish = false; public static void getZS(int n) {
if (finish)
return;
int L = (int) Math.ceil(Math.sqrt(n));
boolean b = false;
for (int i = 2; i <= L; i++)
if ((n % i) == 0) {
System.out.print(i + " ");
getZS(n / i);
b = true;
break;
}
if (!b) {
System.out.print(n);
finish = true;
}
}
}
public class A {
public static void main(String[] args) {
int n = 1000;
int m = -1;
do {
m = getZS(n);
if (m != 1) {
n /= m;
System.out.print(m + " ");
} else {
System.out.print(n);
break;
}
} while (true);
} public static int getZS(int n) {
int L = (int) Math.ceil(Math.sqrt(n));
for (int i = 2; i <= L; i++)
if ((n % i) == 0)
return i;
return 1;
}
}
{
public static void main(String[] args)
{
for (int i = 1; i <= 100; i ++) {
computePrimeFactor(i);
}
} public static void computePrimeFactor(int number)
{
System.out.print(number + " = "); if (number < 4) {
System.out.println(number);
}
else {
for (int i = 2; i < number; i ++) {
if (number % i == 0) {
System.out.print(i + "*"); number = number / i;
i = 1;
}
} System.out.println(number);
}
}
}
{
public static void main(String[] args)
{
for (int i = 1; i <= 100; i ++)
{
computePrimeFactor(i);
}
} public static void computePrimeFactor(long number)
{
System.out.print(number + " = "); if (number < 4)
{
System.out.println(number);
}
else
{
for (long i = 2; i <= sqrt(number); i ++)
{
if (number % i == 0)
{
System.out.print(i + "*"); number = number / i;
i = 1;
}
} System.out.println(number);
}
} public static long sqrt(long number)
{
return Math.round(Math.sqrt(number));
}
}
package src;/**
*
* @author cokey5614
*
*/
public class main4TestFunction { /**
* main function 4 test
*
* @param args
* String
* @throws ZZSystemException
* ZZSystemException
*/
public static void main(String args[]) { int testNum = 121;
int count = 0;
int test = 1;
for (int i = 0; i < testNum; i++) {
test = test * 2;
count++;
if (test >= testNum)
break;
}
System.out.print(testNum + " = ");
int toResult = testNum;
int result = 0;
for (int i = 0; i < count; i++) {
if (0 == i) {
result = getMaxSi(toResult);
System.out.print(result + " * ");
} else if (!isSi(toResult / result)) {
toResult = toResult / result;
result = getMaxSi(toResult);
System.out.print(result + " * ");
} else {
System.out.print(toResult / result + " ");
break;
}
}
} public static boolean isSi(int num) {
if (num == 2 || num == 1) return true;
int temp = num / 2 + 1;
for (int i = 2; i < temp; i++) {
if (num % i == 0)
return false;
}
return true;
} public static int getMaxSi(int num) {
int temp = num / 2;
for (int i = temp; i >= 1; i--) {
if (num % i == 0 && isSi(i)) {
return i;
}
}
return num;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int data = sc.nextInt();
factor(data,2);
} static void factor(int num,int div) { if(num<div*2){
System.out.println(num);
}else{
if(num%div==0){
System.out.print(div+"*");
factor(num/div,div);
}else{
if(div==2) {
factor(num,div+1);
}else{
factor(num,div+2);
}
}
}
}
}
package qujianfeng;public class FenJieZhiYinShou {
int Fdata;
int count=0; FenJieZhiYinShou(int dd) {
Fdata = dd;
ToFactor(Fdata, 2);
System.out.println();
System.out.println(count);
} void ToFactor(int Td, int FacNum) {
if (Td != FacNum) {
if (Td % FacNum == 0) {
System.out.print(FacNum + "*");
ToFactor(Td / FacNum, FacNum);//如果是2的话会导致后面的else部分被多次没用的执行
} else {
count++;
ToFactor(Td, FacNum + 1);
}
} else {
System.out.print(FacNum);
}
}
public static void main(String[] args) {
int data=Integer.valueOf(javax.swing.JOptionPane.showInputDialog("请输入要分解的数:")).intValue();
new FenJieZhiYinShou(data);
System.exit(0);
}
}
{
public static void main(String[]args){
Test.doJob(80);
} public static void doJob(int number){
System.out.println(number+"=");
List list = new ArrayList();
calc(number, list);
System.out.println(list);
} public static void calc(int number, List list){
if(number==1)return;
int i=2;
while(true){
if(number%i==0){
list.add(i);
number = number/i;
calc(number, list);
break;
}
i++;
}
}
}
public static void main(String[] args){
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
try{
String line=in.readLine();
int n=Integer.parseInt(line);
ZhiYinShu.qiujie(n);
}catch(IOException e){
}
}
static void qiujie(int n){
int i=2;
for(;i<=n;i++)
if(n%i==0)
break;
System.out.print(i);
if(n!=i) {
System.out.print("*");
qiujie(n/i);
}
else
System.out.print('\n');
return;
}
}
不过最后那个1能不能去掉 呵呵
{
if(num==1)
{
System.out.print("1");
}
else
{
out:
for(int i=2;i<=num;i++)
{
if(num%i==0)
{
System.out.print(i);
num = num/i;
if(num != 1){
System.out.print("*");
zhi(num);
}
break out;
}
}
}
}最简单的 修改自beexk(我要当牛人!!!!) ( ) 信誉:100
import java.util.Scanner;
class Demo
{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
int n=in.nextInt();
System.out.print(n+"=");
if (n==1)
{
System.out.print(n);
}else
{
for (int i=2; i<=n; i++)
{
if (n%i==0)
{
//System.out.println(i);
boolean f=true;
for (int j=2; j<i; j++)
{
if (i%j==0)
{
f=false;
break;
}
}
if (f)
{
System.out.print(i+"*");
//System.out.println(n+"/"+i+"="+n/i);
n=n/i;
i=2; //把质数最小化,解决质数不能重复的问题。。
}
}
}
}
}
}
但是有个小问题,就是后面多了一个 " * " 号