最大公约数和最小公倍数问题
http://218.5.5.242:9018/JudgeOnline/problem.php?id=1111
时间限制: 1 Sec
内存限制: 128 MB
题目描述
输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个 数。
条件:
1、P,Q是正整数
2、要求P,Q以x0为最大公约数,以y0为最小公倍数。
试求:满足条件的所有可能的两个正整数的个数。
样例
输入:x0=3 yo=60
输出:4
说明(不用输出)此时的 P Q 分别为:
3 60
15 12
12 15
60 3
所以:满足 条件的所有可能的两个正整数的个数共4种.
输入
输入只有一行,为两个正整数x0和y0。
输出
输出只有一行,为满足条件的所有可能的两个正整数的个数。
样例输入
3 60
样例输出
4
来源
NOIP2001普及组
此题较UVa 10892(点击打开题解)更为简单。
完整代码:
/*0ms,964KB*/ #include<cstdio> int main() { long long m, n, nn, ans, i, count; scanf("%lld%lld", &m, &n); if (n % m) putchar('0');///注意特判 else { n /= m; ans = 1; for (i = 2; i * i <= n; i += 2)///不用求素数,因为范围很小(注意n在不断减小) { if (n % i == 0) { count = 0; while (n % i == 0) { n /= i; ++count; } ans <<= 1; } if (i == 2) --i;///小技巧 } if (n > 1) ans <<= 1; printf("%lld", ans); } return 0; }
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索问题
, 题目
, 整数
, noip阅读程序
, 限制
, 最大公约数
最小公倍数
noip2016普及组复赛、noip2015普及组复赛、noip2016普及组初赛、noip2013普及组复赛、noip2011普及组复赛,以便于您获取更多的相关知识。