博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
菜鸟涂鸦作品展_No.4
阅读量:5068 次
发布时间:2019-06-12

本文共 1131 字,大约阅读时间需要 3 分钟。

//【程序4】 题目:将一个正整数分解质因数。

//例如:输入90,打印出90=2*3*3*5。
//解答: 分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
//(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
//(2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
//(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
//这个题目很明显是要用递归算法来实现的,打印“*”有些技巧,但也很容易解决,程序如下:
import java.io.*;

public class _4_zhiyin {

int zuixiao(int n){
int flag,i,j;
labell:
for (i=2 ; i<=n ; i++){
flag=0;
for (j=2 ; j<=i ; j++){
if (i%j==0)
flag++;
}
if (flag==1 && n%i==0){
System.out.print(i);
break labell;
}
}
//System.out.print(i);
return i;
}
public static void main(String[] args) throws Exception{
_4_zhiyin z=new _4_zhiyin();
System.out.println("输入要分解的数值");
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
int num=Integer.parseInt(br.readLine());
int m=1;
System.out.print(num+"=");
do
{
m=z.zuixiao(num);
if (num>m)
System.out.print("*");
num=num/m;
}
while(num/m>=1);
}
}

 

涂鸦心得:

  搞了一早上,搞出这么一个小东西。试用了一下I/O输入,整个机制还是没搞明白,勉强先这样用着吧。另外,如果不加throws Exception的话会报错,java的抛出异常机制也是还没有搞清。使用了Integer.parseInt,把string型改为int。动手还是有收获的,继续吧。。。

转载于:https://www.cnblogs.com/aniuer/archive/2012/08/20/2647032.html

你可能感兴趣的文章
jquery实现限制textarea输入字数
查看>>
thinkphp5 csv格式导入导出(多数据处理)
查看>>
fur168.com 改成5917电影
查看>>
PHP上传RAR压缩包并解压目录
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
jenkins常用插件汇总
查看>>
c# 泛型+反射
查看>>
第九章 前后查找
查看>>
Python学习资料
查看>>
多服务器操作利器 - Polysh
查看>>
[LeetCode] Candy
查看>>
Jmeter学习系列----3 配置元件之计数器
查看>>
jQuery 自定义函数
查看>>
jq 杂
查看>>
jquery datagrid 后台获取datatable处理成正确的json字符串
查看>>
作业一
查看>>
AJAX
查看>>
ActiveMQ与spring整合
查看>>
web服务器
查看>>
Git的使用--打tag
查看>>