首页 > 其他分享 >CSP历年复赛题-P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题

CSP历年复赛题-P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题

时间:2024-05-21 18:07:12浏览次数:12  
标签:gcd 公倍数 int 最大公约数 P1029 NOIP2001

原题链接:https://www.luogu.com.cn/problem/P1029

题意解读:已知x,y,求有多少对p、q,使得p、q的最大公约数为x,最小公倍数为y。

解题思路:

枚举法即可。

枚举的对象:枚举p,且p必须是x的倍数,还有p <= y

q的计算:q = x * y / p,

q要存在,必须x * y % p == 0,且gcd(p, q) == x

100分代码:

#include <bits/stdc++.h>
using namespace std;

long long x, y, ans;

int gcd(int a, int b)
{
    if(b == 0) return a;
    return gcd(b, a % b);
}

int main()
{
    cin >> x >> y;
    for(int p = x; p <= y; p += x)
    {
        if(x * y % p == 0 && gcd(p, x * y / p) == x)
        {
            ans++;
        }
    }
    cout << ans;
    return 0;
}

 

标签:gcd,公倍数,int,最大公约数,P1029,NOIP2001
From: https://www.cnblogs.com/jcwy/p/18204703

相关文章

  • [NOIP2001 提高组] 数的划分
    个人博客传送锚点:https://www.acwing.com/blog/content/55495/传送锚点:https://www.luogu.com.cn/problem/P1025题目描述将整数$n$分成$k$份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:$n=7$,$k=3$,下面三种分法被认为是相同的。$1,1,5$;$1,5,1$;$5,1,1$.问有多......
  • P1028 [NOIP2001 普及组] 数的计算
    题目链接:观察样例。当输入\(n=6\)时,6本身算一个。当6后加的数为1时只有一个。6后加的数为2时有62,621两个。6后加的数为3时有63、631两个。可以看到,我们往\(n\)后加的每一个不超过\(\dfrac{n}{2}\)的数都可以继续延伸。考虑递推。\(f[i]\)表示以\(i......
  • 求最大公约数和最小公倍数
    1.最大公约数辗转相除法intt;while(b!=0){t=a%b;a=b;b=t;}printf("thegcdis%d\n",a);2.最小公倍数最小公倍数乘以最大公约数等于两数乘积,所以最小公倍数等于两数乘积除以最大公约数。include<stdio.h>include<math.h>intmain(void){printf("pleaseinputtwo......
  • 最大公约数和最小公倍数
    最大公约数(GCD)和最小公倍数(LCM)最大公约数定义:如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数;几个自然数公有的约数,叫做这几个自然数的公约数;公约数中最大的一个公约数,称为这几个自然数的最大公约数(greatestcommond......
  • 【题解】[NOIP2001 普及组] 装箱问题
    [NOIP2001普及组]装箱问题这是一道动态规划题。那就先定义状态吧(这里用的是一维滚动数组)。$f[j]$代表当我有$j$这么多容量可以用时,能装的最大重量是多少。好,状态定义好了再想状态转移方程。$f[j]$可以从哪里转移过来呢?想一想,当我们循环到第$i$个物品时,我们面临两个......
  • 洛谷题单指南-动态规划1-P1049 [NOIP2001 普及组] 装箱问题
    原题链接:https://www.luogu.com.cn/problem/P1049题意解读:装尽可能多的物品,使得总体积越大越好,即剩余空间最小,还是一个01背包问题,物品的体积就是其价值。解题思路:01背包模版题,物品体积、价值相同,直接采用一维dp。100分代码:#include<bits/stdc++.h>usingnamespacestd;co......
  • 【数论】最大公因数和最小公倍数(GCD和LCM)
    最大公因数(GCD)两个数的最大公因数很好做,使用内置的库函数即可,注意x和y的类型要相同。llgcd=__gcd(x,y);如果要求多个数的最大公因数,那么初始化为0(因为根据定义,0和任何数x的gcd都是x,所以0是gcd操作的幺元),然后分别进行gcd即可。llgcd=0;for(inti=1;i<=n;++i)......
  • 洛谷题单指南-数学基础问题-P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题
    原题链接:https://www.luogu.com.cn/problem/P1029题意解读:已知x,y,求有多少对p、q,使得p、q的最大公约数为x,最小公倍数为y。解题思路:枚举法即可。枚举的对象:枚举p,且p必须是x的倍数,还有p<=yq的计算:q=x*y/p,q要存在,必须x*y%p==0,且gcd(p,q)==x100分代码:#include......
  • C语言经典例题(17) --- 最小公倍数、单词倒置、你是天才吗?、完美成绩、判断整数的奇偶
    1.最小公倍数正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数,设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。输入:57输出:35#include<stdio.h>intmain(){inta=0;intb=0;int......
  • C语⾔编程题 计算最⼤公约数 和 打印最⼩公倍数
    1.计算最⼤公约数1.1 题⽬描述:      输⼊2个整数m和n,计算m和n的最⼤公约数,并打印出结果2.2解法思路:       最⼤公约数是指两个或多个整数共有约数中最⼤的⼀个。为了求出两个数的最⼤公约数,可以采⽤: •枚举试除法: 1.具体来说,公约数⼀定⼩于两个......