hdu 4497 数论

关键点:利用算术基本定理可以重新定义整数a和b的最大公约数和最小公倍数。

详解:http://m.blog.csdn.net/blog/u011328934/24499897

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 using namespace std;
 5
 6 void solve( int k )
 7 {
 8     int ans = 1;
 9     for ( int i = 2; i * i <= k; i++ )
10     {
11         if ( k % i == 0 )
12         {
13             int cnt = 0;
14             while ( k % i == 0 )
15             {
16                 cnt++;
17                 k = k / i;
18             }
19             ans = ans * 6 * cnt;
20         }
21     }
22     if ( k > 1 )
23     {
24         ans = ans * 6;
25     }
26     printf("%d\n", ans);
27 }
28
29 int main ()
30 {
31     int t;
32     scanf("%d", &t);
33     while ( t-- )
34     {
35         int g, l;
36         scanf("%d%d", &g, &l);
37         if ( l % g )
38         {
39             printf("0\n");
40         }
41         else
42         {
43             solve( l / g );
44         }
45     }
46     return 0;
47 }
时间: 2024-10-27 12:48:53

hdu 4497 数论的相关文章

hdu 4542 数论 + 约数个数相关 腾讯编程马拉松复赛

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4542 小明系列故事--未知剩余系 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 889    Accepted Submission(s): 207 Problem Description "今有物不知其数,三三数之有二,五五数之有三,七七数之有

hdu 1124 数论

题意:求n!中末尾连续0的个数  其实就是2*5的个数 30! 中有5 10 15 20 25 30  是5的倍数有6个   6=30/5; 6/5=1; 这个1 为25 5  10 15 20  25  30 35 40 45 50 55 60  65 70 75 80  85 90 95 100      100/5=20; 25                     50                    75                     100       20/5=4

hdu 3641 数论 二分求符合条件的最小值数学杂题

http://acm.hdu.edu.cn/showproblem.php?pid=3641 学到: 1.二分求符合条件的最小值 /*==================================================== 二分查找符合条件的最小值 ======================================================*/ ll solve() { __int64 low = 0, high = INF, mid ; while(low <=

hdu 4961 数论 o(nlogn)

Boring Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 60    Accepted Submission(s): 30 Problem Description Number theory is interesting, while this problem is boring.   Here is the probl

hdu 1299 数论 分解素因子

题意:求1.1/x+1/y=1/z 给定z 求x,y的个数zsd:1: 要知道这个素数的因子的范围 范围为2--sqrt(n);2: 带入方程得:x = n * n / k + n ; 现在就变成了求x的值.又因为n一定大于k,所以转换成求n * n的分解数: 因为n = p1 ^ e1 * p2 ^ e2 *..........*pn ^ en sum ( n)= ( 1 + e1 ) * ( 1 +e2 ) * .........* ( 1 +en ); sum (n * n) = ( 1

hdu 1104 数论+bfs

题意:给n,m,k;输出n经过+-*%后(n%k+k)%k==((n+1)%k)%k  输出最小路径与运算副 zsd:% 只是求余数 有正负 mod 是求模 无正负. yhd:对m*k求余对 对k求余不对 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 5

hdu 1005 数论 循环

给定 ab 与飞 f1 f2 求f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 分析: 1 因为mod7   0<=f(n)  &&f(n)<=6  有7种取值 2 f(n-1) 与f(n-2) 共有49种组合 所以找到循环取值即可 Problem : 1005 ( Number Sequence ) Judge Status : Accepted RunId : 9085676 Language : G++ Author : xiaon

hdu 4497 GCD and LCM(排列组合)

题目:hdu 4497 GCD and LCM 题目大意:给出三个数的最大公约数,和最小公倍数,问这三个数的排列组合关系. 解题思路:最小公倍数/最大公约数 ==  三个数不同部分的乘积.这样来考虑的话,三个数都要有最大公约数的部分,其余的部分就是由LCM / GCD 里面的因子构成.这里面的因子可能会有 2 2 3 这样的情况, 不同的因子之间是不会相互干扰的,但是相同的会出现问题,因为,不能同时将相同的因子都放在三个位置上,这样最大公约数就的要乘上这个因子.然后对于单种因子来考虑的话,每种因

hdu 4497 GCD and LCM 数论 素数分解

GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 1339    Accepted Submission(s): 607 Problem Description Given two positive integers G and L, could you tell me how many solutions of