本文主要是介绍hdu 5447 Good Numbers(数论),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:hdu 5447 Good Numbers
解题思路
对于数K而言,good number的个数即为K的各个质因子的幂数累乘。但是题目给定数比较大1e24,肯定有有大于1e6的质因子,但是最多有三个。题目中又定条件,说第一大的质因子相同,第二大的一定不同,那么我们先将1e6以内的质因子分解,如果剩下的部分大于1e6的话,我们就需要再作判断,求两数的gcd,就可以将第一第二大的质因子分离,判断是否为2,3次幂可以分别求出。
代码
import java.util.*;
import java.math.*;
import java.io.*;public class Main {final static int maxn = 1000000; static int cnt = 0;static int vis[] = new int[maxn+5];static int pri[] = new int[maxn+5];public
这篇关于hdu 5447 Good Numbers(数论)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!