• 中国MOOC_零基础学Java语言_第7周 函数_1分解质因数


    第7周编程题

    返回
     

    第7周编程题

    依照学术诚信条款,我保证此作业是本人独立完成的。

    温馨提示:

    1.本次作业属于Online Judge题目,提交后由系统即时判分。

    2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩。

    1
    分解质因数(5分)

    题目内容:

    每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。

    现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。

    输入格式:

    一个整数,范围在[2,100000]内。

    输出格式:

    形如:

    n=axbxcxd

    n=n

    所有的符号之间都没有空格,x是小写字母x。

    输入样例:

    18

    输出样例:

    18=2x3x3

    时间限制:500ms内存限制:32000kb
     
    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    
    		int count = 0;// 计数器
    		int n = 0;// 输入
    		int nBeifen;// 备份n
    		int prime = 2;// 素数,第一个素数是2
    
    		n = sc.nextInt();
    
    		if (prime(n)) {
    			System.out.printf("%d=%d
    ", n, n);// n=n
    		} else {
    			System.out.printf("%d=", n);// n=axbxcxd
    
    			nBeifen = n;
    
    			while (nBeifen > 1) {
    				if (nBeifen % prime == 0) {
    					if (count > 0) {
    						System.out.printf("x");
    					}
    					nBeifen = nBeifen / prime;
    					System.out.printf("%d", prime);
    					count++;
    				} else {
    					prime++;
    					prime = nextPrime(prime);// 下一个素数
    				}
    			}
    
    			System.out.printf("
    ");
    		}
    	}
    
    	public static boolean prime(int n) {// 判断是否素数
    		boolean isPrime = true;// 默认是素数
    
    		if (n == 1 || (n % 2 == 0 && n != 2)) {// 判断1或者除了2的偶数
    			isPrime = false;
    		} else if (n == 2) {// 判断2
    			isPrime = true;
    		} else {// 判断其他
    			for (int i = 3; i < Math.sqrt(n); i += 2) {
    				if (n % i == 0) {
    					isPrime = false;
    					break;
    				}
    			}
    		}
    
    		return isPrime;
    	}
    
    	public static int nextPrime(int n) {// 下一个素数
    		while (true) {
    			if (prime(n)) {
    				return n;
    			} else {
    				n++;
    			}
    		}
    	}
    }
    
  • 相关阅读:
    架构漫谈阅读笔记(1)
    第一周学习进度
    2月13号寒假总结
    2月12日寒假总结
    2月11日寒假总结
    2月10日寒假总结
    寒假学习进度笔记一
    mapreduce课上实验
    个人课程总结
    用户体验评价
  • 原文地址:https://www.cnblogs.com/denggelin/p/6770330.html
Copyright © 2020-2023  润新知