zoukankan      html  css  js  c++  java
  • 分解质因数——mooc《零基础学Java语言》-(浙大翁凯)第七周编程题(1)

    题目内容:

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

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

    输入格式:

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

    输出格式:

    形如:

    n=axbxcxd

    n=n

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

    输入样例:

    18

    输出样例:

    18=2x3x3

    时间限制:500ms内存限制:32000kb
     
    代码实现:
    /*
    分解质因数(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 分解质因数 {
        public static boolean isprime(int i) //判断素数函数
        {
            boolean isprime=true;
            for(int j=2;j<i;j++) 
            {
                if(i%j==0) 
                {
                    isprime=false;
                    break;
                }
            }
            return isprime;
        }
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner in=new Scanner(System.in);
            int n=in.nextInt();
            int count=0;
            int[] array=new int[n];
            if(isprime(n)==true) //调用判断素数函数
            {
                System.out.println(n+"="+n);//输入的数值为素数时,输出n=n
            }
            else //输入数值为合数时
            {
                for(int i=2;i<n;i++) //将小于n的素数存入数组中
                {
                    if(isprime(i)==true) 
                    {
                        array[count]=i;
                        count++;
                    }
                }
                System.out.print(n+"=");
                for(int i=0;i<n;i++) 
                {
                    while(n%array[i]==0) 
                    {
                        n/=array[i];
                        if(n==1) 
                        {
                            System.out.print(array[i]);
                        }
                        else 
                        {
                            System.out.print(array[i]+"x");
                        }
                    }
                    if(n==1) 
                    {
                        break;
                    }
                }
            }
    
        }
    
    }
    吾生也有涯,而知也无涯
  • 相关阅读:
    软件工程概论第一阶段站立会议(八)
    软件工程概论第一阶段站立会议(七)
    浪潮之巅阅读笔记(一)
    软件工程概论学习进度条(四)
    软件工程概论第一阶段站立会议(六)
    软件工程概论第一阶段站立会议(五)
    软件工程概论第一阶段站立会议(四)
    易校小程序典型需求分析
    pip/easy_install failure: failed to create process
    mysq修改密码
  • 原文地址:https://www.cnblogs.com/daimasanjiaomao/p/10939273.html
Copyright © 2011-2022 走看看