RGCDQ 题意:F(x)表示x的质因子的种数.给区间[L,R],求max(GCD(F(i),F(j)) (L≤i<j≤R).(2<=L < R<=1000000) 题解:可以用素数筛求质因子种数(这不用多说,看下代码init()中内容就能理解).然而R的范围太大,会TLE.因此只能用空间换时间了. 可以用一个二维数组num[i][j] 保存x<=i&&F(x)=j的x的个数.(预处理,有点dp的思想) 2*3*5*7*11*13*17 > 10 ^ 6…
// hdu5317 RGCDQ // // 题目大意: // // 给定一个闭区间[l,r],定义f(x)是x的不同的质因子的个数 // 比方: 12 = 2 * 2 * 3,是两种.所以f(x) = 2,问max GCD(f[i],f[j]) // i,j在[l,r]范围内,而且i!=j. // // 解题思路: // // 首先伟大的W神发现了一个规律.就是小于等于1e6不同的素因子个数不会超过7个 // 这样.我们就行统计出在1到i这个区间内,1-7各出现了多少次.最后R-(L-1)>=…
解题报告 之 HDU5317 RGCDQ Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to find more and more interesting things about GCD. Today He comes up with Range Greatest Common Divisor Query (RGCDQ). What's RGCDQ? Please let me expl…
RGCDQ 暴力水题,很可惜比赛时没有做出来,理清思路是很简单的. 题意:定义f(i)表示i的素因子个数,给你一段区间[l,r],求max_gcd(f(i),f(j)).具体细节参考题目. 思路:数据范围是1e6,而且1e6组数据,很明显只能打表O(1)查询嘛.我们可以发现1e6以内的数最多有7个素因子,这便是此题的突破口.定义一个二维数组num[i][j]表示前i个数中素因子个数j的出现次数.然后类似筛法求素数打表.注意这段区间素因子为j的次数如果大于1,那么ans=max(ans,j).否则…
题目链接:D:Two Divisors 题意: 给你n个数,对于每一个数vi,你需要找出来它的两个因子d1,d2.这两个因子要保证gcd(d1+d2,vi)==1.输出的时候输出两行,第一行输出每一个数vi对应的第一个因子d1,第二行对应位置输出第二个因子d2 题解: 最大公约数有两个基本性质如下: gcd(a,b)=gcd(a±b,b)=gcd(a,b±a); if(gcd(a,b)==1) gcd(a,bc)=gcd(a,c); 设p1.p2.p3...pm是一个数x的所有质因子,我们设d1…
总时间限制:  1000ms 内存限制:  65536kB 描述 任意输入两个正整数m, n (1 < m < n <= 5000),依次输出m到n之间每个数的最大质因子(包括m和n:如果某个数本身是质数,则输出这个数自身). 输入 一行,包含两个正整数m和n,其间以单个空格间隔. 输出 一行,每个整数的最大质因子,以逗号间隔. 样例输入 5 10 样例输出 5,3,7,2,3,5 还是水题.. 查看 #include <iostream> #include <cstr…
快速求n的质因子 如何尽快地求出n的质因子呢?我们这里又涉及两个好的算法了! 第一个:用于每次只能求出一个数的质因子,适用于题目中给的n的个数不是很多,但是n又特别大的 #include<stdio.h> int main() { __int64 a[100],num,i,n; while(scanf("%I64d",&n)!=EOF) { num=0; for(i=2;i*i<=n;i++) { if(n%i==0) { a[num++]=i; while(…
The problem statement is very easy. Given a number n you have to determine the largest power of m,not necessarily prime, that divides n!.InputThe input file consists of several test cases. The first line in the file is the number of cases to handle.The…
#include<cstdio> #include<cmath> using namespace std; #define Max(x, y) (x > y ? x : y) int main() { int n, m; while(~scanf("%d",&n)) //1没有最大质因子 { int tn = n; ; ; i*i<=n; i++) { ) { mx = Max(mx, i); ) n /= i; } } mx = Max(m…
3181: [Coci2012]BROJ Time Limit: 10 Sec   Memory Limit: 64 MB Submit: 26   Solved: 7 [ Submit][ Status] Description 求最小质因子等于p的第n小的正整数(恰好有n-1个最小质因子等于p且比它 小的正整数).p一定是质数.若答案超过10^9则输出0. Input   Output   Sample Input 2 3 Sample Output 9 HINT 1 <= n, p <=…