zoukankan      html  css  js  c++  java
  • 同同的数学题——恼人的同同

    问题 D: 桐桐的数学难题

      今天数学课上,桐桐学习了质数的知识:一个正整数如果只能被1和它本身整除,那么这个整数便是质数。桐桐就想:任意一个正整数是否都能分解成若干个质数相乘的形式呢?输入一个正整数n(2≤n≤109),把它分解成质因子相乘的形式,如果为质数则输出该数本身。如:36=2×2×3×3;19=19。你能帮助桐桐解决这个难题吗?

    输入

    输入一个正整数n(2≤n≤109)

    输出

    把它分解成质因子相乘的形式,如果为质数则输出该数本身,乘数从小到大输出。

    样例输入

    99
    

    样例输出

    99=3*3*11
    

    提示


    c++数学函数的预编译处理:#include<math.h>

    package bluebriage;
    
    import java.util.*;
    
    public class Text{
    	
    	public static void main(String ages[]) {
            Scanner num=new Scanner(System.in);
            long n=num.nextLong(),i;
            System.out.print(n+"=");
            for(i=2;i<=n;i++){
              while(n!=i) {
            	  if(n%i==0) {
            		  System.out.print(i+"*");
            		  n/=i;
            	  }else {
            		  break;
            	  }
              }
    	          if(Prime(n)) {//如果不加这个判断可能超时
    	        	  System.out.println(n);
    	        	  break;
    	          }
             }
        }
    	public static boolean Prime(long i) {
    		if(i==1) {
    			return false;
    		}
    		for(int j=2;j<=Math.sqrt(i);j++) {
    		     if(i%j==0)  return false;
    		}
    		     return true;
    	}
    	
    }
    

      当n为一个很大的素数的时候,我们就要条件判断nnnnnnnnnnnn次,但是,如果在循环判断玩后,我们立刻判断这个n是不是素数,是的话就立刻退出走下一步。

    这也是看了一些大佬总结出来的结论才得知;感谢大佬们。

  • 相关阅读:
    Linux中Elasticsearch集群部署
    在.net core 项目中添加swagger支持
    ASP.NET Core 类库中取读配置文件
    Redis的服务安装步骤
    Lambda表达式多表连接的左连
    Angular7 学习资料
    Docker在eShopOnContainer项目中的使用方法
    绘图工具
    万能分页存储过程(SQL Server)
    为什么程序开发人员这么累?
  • 原文地址:https://www.cnblogs.com/RorinL/p/12494498.html
Copyright © 2011-2022 走看看