zoukankan      html  css  js  c++  java
  • Uva 10892 LCM Cardinality (数论/暴力)

    题意:给出数n,求有多少组A,B的最小公约数为n;

    思路:3000ms,直接暴力寻找,找到所有能把n整除的数 pi, 枚举所有pi

    代码:

    #include <iostream>
    #include <cstdio>
    #include <vector>
    #define ll long long
    using namespace std;
    
    ll gcd(ll a,ll b)
    {
        if(b==0) return a;
        else return gcd(b,a%b);
    }
    
    int main()
    {
        ll n;
        while(cin>>n&&n)
        {
            vector <ll> p;
            for(ll i=1; i*i<=n; i++)
            {
                if(n%i==0)
                {
                    p.push_back(i);
                    if(n/i!=i)
                        p.push_back(n/i);
                }
            }
            int ans=0;
            for(ll i=0; i<p.size(); i++)
            {
                for(ll j=i; j<p.size(); j++)
                {
                    if((p[i]*p[j]/gcd(p[i],p[j]))==n)
                        ans++;
                }
            }
            printf("%lld %d
    ",n,ans);
        }
        return 0;
    }
  • 相关阅读:
    nodejs ---day01
    面向对象
    面向对象
    面向对象
    webpack
    webpack
    webpack
    模块化 (ESM) --- day02
    模块化 --- day01
    轮播图(淡入淡出切换)
  • 原文地址:https://www.cnblogs.com/simplekinght/p/6157964.html
Copyright © 2011-2022 走看看