zoukankan      html  css  js  c++  java
  • 12-算法训练 素因子去重

    http://lx.lanqiao.cn/problem.page?gpid=T513

                    算法训练 素因子去重  
    时间限制:1.0s   内存限制:256.0MB
        
    问题描述
      给定一个正整数n,求一个正整数p,满足p仅包含n的所有素因子,且每个素因子的次数不大于1
    输入格式
      一个整数,表示n
    输出格式
      输出一行,包含一个整数p。
    样例输入
    1000
    样例输出
    10
    数据规模和约定
      n<=10^12
      样例解释:n=1000=2^3*5*3,p=2*5=10
     
    思路:注意到数据范围,首先确定是用long 类型,然后考虑到其实无需用到素数的判断,因为我是从2开始判断的,
    所以每次都会将能除开的数除尽,根本不会有合数,同时注意到每次处理完,n都在变小,所以不是非要循环到原始的
    n, 而是当前的最大值,因为的它的素因子最大只能是自己。
    import java.util.Scanner;
    import java.math.*;
    
    public class Main {
    
    	public static void main(String[] args) {
    		Scanner cin = new Scanner(System.in);
    //		long n = cin.nextInt();
    		long n = cin.nextLong();
    		
    		long ans = 1;
    		long x = n;
    		for(long i = 2; i <= x; i++) {
    			if(x % i == 0) {
    //			if(x % i == 0 && isPrime(i)) {
    				ans *= i;
    			}
    			while(x % i == 0) {
    				x /= i;
    			}
    		}
    		System.out.println(ans);
    	}
    	
    	public static boolean isPrime(long x) {
    		for(long i = 2; i <= Math.sqrt(x); i++) {
    			if(x % i == 0)
    				return false;
    		}
    		return true;
    	}
    	
    }
    

      

  • 相关阅读:
    spring揭秘读书笔记----spring的ioc容器之BeanFactory
    spring启动加载过程源码分析
    java线程数过高原因分析
    spring揭秘读书笔记----ioc的基本概念
    git merge rebase的区别及应用场景
    spring实现定时任务
    jetty.xml解析
    Hackthebox--------irked
    CTF之信息泄漏
    CTF web题型解题技巧
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/10351473.html
Copyright © 2011-2022 走看看