zoukankan      html  css  js  c++  java
  • 洛谷1029 最大公约数和最小公倍数问题 解题报告

    洛谷1029 最大公约数和最小公倍数问题

    本题地址: http://www.luogu.org/problem/show?pid=1029

    题目描述

    输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数
    条件:  
    1.P,A是正整数
    2.要求P,Q以x0为最大公约数,以y0为最小公倍数.
    试求:满足条件的所有可能的两个正整数的个数.

    输入输出格式

    输入格式:

    二个正整数x0,y0

    输出格式:

    一个数,表示求出满足条件的P,Q的个数

    输入输出样例

    输入样例#1:

    3 60
    

    输出样例#1:

    4
    

    说明

    P,Q有4种
    3 60
    15 12
    12 15
    60 3

    题解

    枚举

    思路很简单。只需枚举所有可能的数值,如果满足条件,则个数+1,最后输出个数。

    注意:

    1.最大公约数需要按照从大到小的顺序枚举,最小公倍数则是按照从小到大的顺序枚举。

    2.不要去重,比如说明中的(3,60)(60,3)前后顺序不同需要计数两次。

    下面附上代码。

    代码

    1. program P1029;    
    2. var    
    3.  x0,y0,s,ans,k:longint;    
    4. begin    
    5.  readln(x0,y0);    
    6.  if y0 mod x0<>then    
    7.  begin    
    8.   writeln(0);    
    9.   halt;    
    10.  end;    
    11.  s:=y0 div x0;    
    12.  k:=2;    
    13.  ans:=1;    
    14.  while k<=s do    
    15.  begin    
    16.   if s mod k=then    
    17.   begin    
    18.    while s mod k=do s:=s div k;    
    19.    ans:=ans*2;    
    20.   end;    
    21.   inc(k);    
    22.  end;    
    23.  writeln(ans);    
    24. end.    

    (本文系笔者原创,未经允许不得转载)

  • 相关阅读:
    【算法•日更•第三十四期】最大流算法
    【算法•日更•第三十三期】网络流基础知识(最大流)
    【原】Java学习笔记017
    【原】Java学习笔记016
    【原】Java学习笔记015
    【原】Java学习笔记014
    【原】Java学习笔记013
    【原】Java学习笔记012
    【原】Java学习笔记011
    【原】Java学习笔记010
  • 原文地址:https://www.cnblogs.com/yzm10/p/4752001.html
Copyright © 2011-2022 走看看