最大公约数和最小公倍数 分解质因数 完全平方数

本文探讨了最大公约数与最小公倍数的求解方法,通过分解质因数展示数学原理,并解决了一个涉及完全平方数的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最大公约数和最小公倍数

分解质因数

完全平方数

package arithmetic;

/**
 *  求最大公约数和最小公倍数
 *  分解质因数 80=2*2*2*2*5
 *
 *  有1、2、3、4个数字,
 *  能组成多少个互不相同且无重复数字的三位数?
 *      都是多少?
 *  
 *  一个整数,它加上100后是一个完全平方数,
 *    加上168又是一个完全平方数,请问该数是多少?
 *
 * @author sunRainAmazing
 *
 */
public class NumberDemo {

    public static void main(String[] args) {
        int a=63,b=28;
        System.out.println(a+" ,  "+b +"的最大公约数为:"
                        +getCommonDivisor1(a,b));

        System.out.println(a+" ,  "+b +"的最大公约数为:"
                +getCommonDivisor(a,b));

        System.out.println(a+" ,  "+b +"的最小公倍数为:"
                +a*b/getCommonDivisor(a,b));


        resolvePrime(80);
        arrangeNumber();
        getNumber();
    }



    /**
     * 求两个数的最大公约数
     * @param n
     * @param m
     * @return
     */
    public static int getCommonDivisor(int n,int m){
        while(true){
            if((n%=m)==0)
                return m;
            if((m%=n)==0)
                return n;
        }
    }



    /**
     *   返回 最大公约数 a
     * @param a 
     * @param b 
     * @return
     */
    public static int getCommonDivisor1(int a,int b){
        //交换两个数
        if(a<b){
            int temp=a;
            a=b;
            b=temp;
        }
        while((a%b)!=0){
            a%=b;
            //交换两个数
            if(a<b){//这种方式有缺陷---当值比较大时容易越界
                a+=b;
                b=a-b;
                a-=b;
            }
        }
        return b;
    }




    /**
     * 进行传入参数分解质因数
     * 程序分析:对n进行分解质因数,应先找到一个最小的质数k,
     * 然后按下述步骤完成:
     *      (1)如果这个质数恰等于n,
     *              则说明分解质因数的过程已经结束,打印出即可。  
     *      (2)如果n <> k,但n能被k整除,则应打印出k的值,
     *              并用n除以k的商,作为新的正整数你n,重复执行第一步。 
     *      (3)如果n不能被k整除,则用k+1作为k的值,
     *              重复执行第一步。
     * @param number
     */
    public static void resolvePrime(int number){
        System.out.print("分解质因数:"+number+"=");
        int k=2;
        while(k <= number){
             if(k==number){
                 System.out.println(number);
                 break;
              }else if(number%k==0){
                    System.out.print(k+"*");
                    number /= k;
              }else{
                 k++;
                }
        }    
  }




    /**
     * 有1、2、3、4个数字,
     * 能组成多少个互不相同且无重复数字的三位数?都是多少?
     */
    public static void arrangeNumber(){
        int i,j,k;
        i=j=k=0;
        int count=0;
        for(i=1;i<=4;i++)
            for(j=1;j<=4;j++)
                for(k=1;k<=4;k++)
                    if(i!=j && j!=k && i!=k){
                        count+=1;//count++;    ++count;
                        System.out.println(i*100+j*10+k+"\t");
                    }  
        System.out.println ("\n经过排列组合后,有"+count+"个数");
    }




    /**
     * 利用Math的相关方法进行测试
     * 一个整数,它加上100后是一个完全平方数,
     *      加上168又是一个完全平方数,请问该数是多少?
     *      Math.floor() 向下取整
     *      Math.sqrt()  取开方值
     */
    public static void getNumber(){
        long number=1;
        for(;number<=10000000l;number++)
            //向下取整Math.floor()
            if( Math.floor(Math.sqrt(number+100))==Math.sqrt(number+100) 
                && Math.floor(Math.sqrt(number+168))==Math.sqrt(number+168)){

                    System.out.println(number);
                    break;
            }
    }

}
计算机网络期末复习题 201708-201801计算机网络复习指导发布-校考学生!!下载截止于12.5日晚上9点 2017-12-04 23:07 计算机网络复习指导-校内考试 §1.名词解释: 1. 计算机网络 2.网络体系结构 3.高速以太网 4.静态路由选择 5. 动态路由选择 6.子网掩码 8.动态主机配置协议 9.套接字 10.客户/服务器模型(C/S模型) 11.域名系统(DNS) 12.光纤分布式数据接口FDDI §2.简答题: 1.试谈你对网络安全的威胁防病毒技术的认识。(线下教学课件) 2.简述物理层的四个特性。(线下教学课件) 3.计算机网络的组成(P2-P3) 4.计算机网络的功能(P3) 5.计算机网络标准化的相关组织(P4+线下教学课件) 6.计算机网络的性能指标(P8+线下教学课件) 7.简述你所知道的网络传输介质(P33-34) 8.物理层的四个特性(P34) 9.简述四种帧边界的划分方法(即组帧方法)。(P52-54+线下教学课件) 10.简述停止-等待流量控制(协议)。(P59+P62-P64+线下教学课件) 11.简述时分多路复用(P69+线下教学课件) 12.简述频分多路复用(P68+线下教学课件) 13.简述IPv4地址的分类(P122-123) 14.UDP数据报与IP分组的区别(P187) §3.论述题: 1.试说明数据链路层原语协议的转换。(线下教学课件) 2.描述常规释放的过程,并画出其示意图。(线下教学课件) 3.奈奎斯特定理公式香农定理公式的主要区别是什么? 4.试比较电路交换、报文交换分组交换等三种数据传输方式。(P27-29) 5.谈谈你对差错控制方法的理解。(P54-58+线下教学课件) 6.谈谈域名解析过程(P225-226) 7.ARPDNS是否有些相似?它们有何区别?(P227) 8.FTP的工作原理。(P228)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值