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是不是素数,是的话就立刻退出走下一步。

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

  • 相关阅读:
    Oracle EBS 初始化用户密码
    Oracle EBS FND User Info API
    linux ERROR: ld.so: object '/lib/libcwait.so' from /etc/ld.so.preload cannot be preloaded: ignored.
    linux解压cpio.gz类型文件
    linux删除乱码文件
    linux使用man命令后退出
    linux字符图形界面
    Red Hat linux 如何增加swap空间
    Linux删除文件夹命令
    Linux本地无法登录,远程却可以登录
  • 原文地址:https://www.cnblogs.com/RorinL/p/12494498.html
Copyright © 2011-2022 走看看