zoukankan      html  css  js  c++  java
  • 【Codeforces 1114C】Trailing Loves (or L'oeufs?)

    【链接】 我是链接,点我呀:)
    【题意】

    问你n!的b进制下末尾的0的个数

    【题解】

    证明:https://blog.csdn.net/qq_40679299/article/details/81167283 这题的话m比较大, 做个质因数分解就ok>_< 算n!有多少个x因子的话 以5为例子 (n=25) 25 20 15 10 5 把他们都除5 5 4 3 2 1 然后再除5 1 所以总共有6个 转换成代码就是 while(n>0){ ans+=n/5; n = n/5; }

    【代码】

    import java.io.*;
    import java.util.*;
    
    public class Main {
    	
    	static int N = (int)1e6;
    	static InputReader in;
    	static PrintWriter out;
    		
    	public static void main(String[] args) throws IOException{
    		//InputStream ins = new FileInputStream("E:\rush.txt");
    		InputStream ins = System.in;
    		in = new InputReader(ins);
    		out = new PrintWriter(System.out);
    		//code start from here
    		new Task().solve(in, out);
    		out.close();
    	}
    	
    	static class Task{
    		public void solve(InputReader in,PrintWriter out) {
    			long n,m;
    			n = in.nextLong();m = in.nextLong();
    			ArrayList a = new ArrayList<>();
    			ArrayList d = new ArrayList<>();
    			for (long i = 2;i*i<=m;i++) {
    				if (m%i==0) {
    					a.add(i);
    					int cnt1 = 0;
    					while (m%i==0) {
    						m/=i;
    						cnt1++;
    					}
    					d.add(cnt1);
    				}
    			}
    			if (m>1) {
    				a.add(m);
    				d.add(1);
    			}
    			long ans = (long)1e18 + 100;
    			for (int i = 0;i <(int)a.size();i++) {
    				long ai = (long) a.get(i);
    				int pi = (int) d.get(i);
    				long nn = n;
    				long res = 0;
    				while (nn>0) {
    					res+=nn/ai;
    					nn/=ai;
    				}
    				ans = Math.min(ans, res/pi);
    			}
    			out.print(ans);
    		}
    	}
    
    	
    
    	static class InputReader{
    		public BufferedReader br;
    		public StringTokenizer tokenizer;
    		
    		public InputReader(InputStream ins) {
    			br = new BufferedReader(new InputStreamReader(ins));
    			tokenizer = null;
    		}
    		
    		public String next(){
    			while (tokenizer==null || !tokenizer.hasMoreTokens()) {
    				try {
    				tokenizer = new StringTokenizer(br.readLine());
    				}catch(IOException e) {
    					throw new RuntimeException(e);
    				}
    			}
    			return tokenizer.nextToken();
    		}
    		
    		public long nextLong() {
    			return Long.parseLong(next());
    		}
    		
    		public int nextInt() {
    			return Integer.parseInt(next());
    		}
    	}
    }
    
  • 相关阅读:
    支持国产共享软件
    Win CE 5.0 增加电池电量显示
    [转]C# 系统应用之鼠标模拟技术及自动操作鼠标
    自己写的 读写 ini 配置文件类
    自己写的 Readini 类
    sizeof与strlen()、递归优化题解
    Git学习资源收集汇总
    好用的Google Chrome插件
    【转】C# Socket编程(5)使用TCP Socket
    【转】C# Socket编程(4)初识Socket和数据流
  • 原文地址:https://www.cnblogs.com/AWCXV/p/10361188.html
Copyright © 2011-2022 走看看