Python和Java编程题(五)
2024-08-25 06:06:49
题目:将一个正整数分解质因数。例如:输入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的值,重复执行第一步。
题目来源:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html
Python实现代码:
# -*- coding: -utf -*- def Factorization(n):
k = 2;
L = []
while k < n:#从小到大依次找出Number的质因数
if n%k == 0:
print(k)
n = n / k
continue
else:
k = k + 1
for i in range(1,k):#当k=n时,判断k是否为最大的一个质因数
if k%i == 0:
break
if i==k-1:
print(k) if __name__ == '__main__':
Number = 90
Factorization(Number)
Java实现代码:
public class Factorization {
public void NumberFactorization(int Number) {//寻找Number所有质因数的方法
int k=2;
while(k<Number) {
if(Number%k == 0) {
Number = Number/k;
ShowPrime(k);//输出Number质因数的方法
continue;
}
k = k + 1;
}
if(IsPrimeNumber(k)) {
ShowPrime(k);
}
} public boolean IsPrimeNumber(int k) {//判断最后的k是不是Number的最大质因数,结果返回boolean类型的值
for(int i=2;i<k;i++) {
if(k%i == 0) {
return false;
}
}
return true;
} public void ShowPrime(int x) {
System.out.print(x+",");//踩坑,单引号括起来的为char字符类型,双引号括起来的才是字符串
} static public void main(String args[]) {//主方法中新建类并调用方法因式分解Number
int Number = 90;
Factorization Fa = new Factorization();
Fa.NumberFactorization(Number);
}
}
Java中这个单引号和双引号的坑已经是第二次踩了,容易和Python弄混淆
最新文章
- Nessus的安装(Linux)
- S3C2440的Linux启动过程分析(一)——SC2440处理器结构
- java 笔试题 字符串旋转
- ZOJ 3860: - Find the Spy
- [Emacs] 常用快捷键-- 生存指南
- javascript splice
- hashTable(哈希表)的基本用法
- 将VIM配置成强大的IDE(三)
- Java设计模式(三)-修饰模式
- Android 使用URLConnection来post数据
- 解决使用Idea/Eclipse编写Hadoop程序包依赖问题
- c++多态性---虚函数
- J2EE学习从菜鸟变大鸟之六 EJB(Enterprise JavaBean)企业级Java组件
- Tomcat关闭失败,SEVERE: Could not contact localhost:8005. Tomcat may not be running.
- Django组件-中间件
- Python 两个星号(**)的 参数
- 对象拷贝:jQuery extend
- CSS定位之position详解
- 使用gitolite进行git服务器搭建
- Hive组件以及执行过程