程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu-4497-GCD and LCM-gcd的性質

hdu-4497-GCD and LCM-gcd的性質

編輯:C++入門知識

lcm(x,y,z)=k;

gcd(x,y,z)=t;

若:x=a*t; y=b*t; z=c*t;

則lcm(a,b,c)=k/t;

若k/t=2^A;

則a,b,c中至少有一個數為2^A,至少有一個數是2^0,另外一個數為2^(0~A);共6*A種情況。

則,若k/t=2^A*3^B*5^C;

a,b,c的情況數為:(6*A)*(6*B)*(6*C);

#include
#include
#include
#include
#include
#include
using namespace std;
#define INF ((1<<31)-1)//2147483647
#define INFF ((1<<30)-1)//1073741823
#define MOD 1000000007
#define LL __int64
const int N = 100000;
bool a[N];
int p[N];
int num;
void Prime() {
    memset(a, 0, sizeof(a));
    int  i, j;
    for(i = 2; i < N; ++i) {
        if(!(a[i])) p[num++] = i;
        for(j = 0; (jt)break;
                LL a=0;
                while(t%p[i]==0)
                {
                    a++;
                    t=t/p[i];
                }
                if(a)
                {
                    ans=ans*(6*a);
                }
            }
            if(t>1)ans=ans*6;
            cout<


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved