題意:求c(m,n)/c(r,s)
思路:先對素數打表,構造階乘的素數,設定乙個e陣列用來儲存素數對應序號i的個數,階乘作為分子是+1,作為分母是-1,最後計算的時候直接ans*=pow(素數,對應的個數)即可
#includeusing namespace std;
#define inf 0x3f3f3f3f
#define ll long long
#define fo freopen("in.txt","r",stdin)
#define fc fclose(stdin)
#define fu0(i,n) for(i=0;i=0;i--)
#define fd1(i,n) for(i=n;i>0;i--)
#define mst(a,b) memset(a,b,sizeof(a))
#define sd(n) scanf("%d",&n)
#define sdd(n,m) scanf("%d %d",&n,&m)
#define ss(s) scanf("%s",s)
#define sddd(n,m,k) scanf("%d %d %d",&n,&m,&k)
#define pans() printf("%d\n",ans)
#define all(a) a.begin(),a.end()
#define sc(c) scanf("%c",&c)
#define we(a) while(scanf("%d",&a)!=eof)
const int maxn=200005;
const double eps=1e-8;
int prime[maxn],check[maxn],e[maxn];
void solve(int n,int d)
if(t==1)
break;}}
}int main()
check[i*prime[j]]=1;
if(i%prime[j]==0)
break;}}
while(cin>>p>>q>>r>>s)
cout<}
return 0;
}
uva 10375 唯一分解定理
已知c m,n m n m n 輸入整數p,q,r,s p q,r s,p,q,r,s 10000 計算c p,q c r,s 輸出保證不超過10 8,保留5位小數 根據唯一分解定理,n 可以分解為若干個質數相乘。模擬分解這個式子 include using namespace std define...
UVa10375(唯一分解定理)
例題10 3 選擇與除法 choose and divide,uva10375 已知c m,n m n m n 輸入整數p,q,r,s p q,r s,p,q,r,s 10000 計 算c p,q c r,s 輸出保證不超過108,保留5位小數。分析 本題正是唯一分解定理的用武之地。組合數c m,n...
uva10375 選擇與除法 唯一分解定理
對數進行分解方便有效的約分。唯一分解定理 乙個數總是有素數的乘積構成。include include include include include using namespace std const int maxn 10000 vector primes int e maxn 乘以或除以n.d ...