Python和Java编程题(五)

题目:将一个正整数分解质因数。例如:输入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实现代码:

 1 # -*- coding: -utf -*-
 2
 3 def Factorization(n):
 4     k = 2;
 5     L = []
 6     while k < n:#从小到大依次找出Number的质因数
 7         if n%k == 0:
 8             print(k)
 9             n = n / k
10             continue
11         else:
12             k = k + 1
13     for i in range(1,k):#当k=n时,判断k是否为最大的一个质因数
14         if k%i == 0:
15             break
16         if i==k-1:
17             print(k)
18
19 if __name__ == ‘__main__‘:
20     Number = 90
21     Factorization(Number)

Java实现代码:

 1 public class Factorization {
 2     public void NumberFactorization(int Number) {//寻找Number所有质因数的方法
 3         int k=2;
 4         while(k<Number) {
 5             if(Number%k == 0) {
 6                 Number = Number/k;
 7                 ShowPrime(k);//输出Number质因数的方法
 8                 continue;
 9             }
10             k = k + 1;
11         }
12         if(IsPrimeNumber(k)) {
13             ShowPrime(k);
14         }
15     }
16
17     public boolean IsPrimeNumber(int k) {//判断最后的k是不是Number的最大质因数,结果返回boolean类型的值
18         for(int i=2;i<k;i++) {
19             if(k%i == 0) {
20                 return false;
21             }
22         }
23         return true;
24     }
25
26     public void ShowPrime(int x) {
27         System.out.print(x+",");//踩坑,单引号括起来的为char字符类型,双引号括起来的才是字符串
28     }
29
30     static public void main(String args[]) {//主方法中新建类并调用方法因式分解Number
31         int Number = 90;
32         Factorization Fa = new Factorization();
33         Fa.NumberFactorization(Number);
34     }
35 }

Java中这个单引号和双引号的坑已经是第二次踩了,容易和Python弄混淆

原文地址:https://www.cnblogs.com/xiang9286/p/9693802.html

时间: 2024-10-12 15:13:46

Python和Java编程题(五)的相关文章

Python和Java编程题(一)

今天偶尔看到一个博客有贴了五十个编程题,决定以后两天左右做一道题 题目来源:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html 1.题目 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程 找出1000以内的所有完数. 2.Java实现 Java中的通过创建对象,再来调用方法解决问题思想还是不太熟练 1 public class ProfectNumber { 2 /* 3 * 定义计算数字的因子总和 4

Python和Java编程题(二)

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21.... 题目来源:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html 观察规律,可以发现,自从第三个月开始,每个月的兔子总数为前两个月兔子总数之和. Java实现 1 public class TestRabbit {// TestRabbit

50道经典的JAVA编程题(目录)

50道经典的JAVA编程题(目录) 题目来源于:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html [程序1] TestRabbit.java 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... [程序2] FindPrimeNumber.java 题目:判断101-20

Java编程思想(五) —— 多态(上)

上一章,Java编程思想(四) -- 复用类里面讲到了向上转型,感觉和多态放在一起写更好. 多态,polymorphism.一个重要的特性,篇幅太长了,分上下两篇写. (1)向上转型 class TV{ public static void show(TV tv){ System.out.println("TV"); } } public class LeTV extends TV{ public static void main(String[] args) { LeTV letv

java编程题(一)

[程序1]    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数:    1"); System.out.println("第2个月的兔子对数:    1&q

Java编程题每日一练day1

Day1共7题 package com.pcx.day1; /** * 设一个字符数组,对其元音字母进行统计 * a e i o u * @author Administrator * */ public class YuanYin { ????public static void main(String[] args) { ????????char [] chars={'a','b','c','d','e'}; ????????int count=0; ????????for (int i =

java编程题 --分解质因数

package Solve; import java.util.Scanner; public class Solve { static Scanner scan = new Scanner(System.in); public static void main(String[] args) { System.out.println("请输入一个正整数:"); int num = scan.nextInt(); System.out.print(num + " = "

java编程题

import java.util.*;public class YearMonthDay{ public static void main(String[] args) throws Exception { int Day[]={31,28,31,30,31,30,31,30,31,30,31,30}; int y,m,d; int Thisday=0; int Feb=28; Scanner input = new Scanner(System.in); System.out.println(

java编程题 --鸡兔同笼

已知鸡和兔的总数量为n,总腿数为m.输入n和m,依次输出鸡的数目和兔的数目.如 果无解,则输出No answer. 样例输入: 14 32 样例输出: 12 2 样例输入: 10 16 样例输出: No answer package Solve; import java.util.Scanner; public class Solve { static Scanner scan = new Scanner(System.in); public static void main(String[]