Uva 10892 LCM Cardinality (数论/暴力)
Posted simpleknight
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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",n,ans); } return 0; }
以上是关于Uva 10892 LCM Cardinality (数论/暴力)的主要内容,如果未能解决你的问题,请参考以下文章