poj 2992

约束的个数。

代码:

#include<iostream>
#include<fstream>

using namespace std;
int n,m;
long long ans;
int a[432][432];
int b[432];

void read(){
//	ifstream cin("in.txt");
	int i,j,k;

	for(i=2;i<=431;i+=2)
		a[i][2]=a[i/2][2]+1;
	
	for(i=3;i<=431;i+=2)
		if(b[i]==0)
		{
			a[i][i]=1;
			for(j=2*i;j<=431;j+=i)
			{
				a[j][i]=a[j/i][i]+1;
				b[j]=1;
			}
		}
	for(i=2;i<=431;i++)
		for(j=2;j<=i;j++)
			a[i][j]+=a[i-1][j];
	while(cin>>n>>m){
		ans=1;
		for(i=2;i<=n;i++)
			ans*=a[n][i]-a[n-m][i]-a[m][i]+1;
		cout<<ans<<endl;
	}
}

int main(){
	read();
	return 0;
}

posted on 2011-03-31 13:50  宇宙吾心  阅读(291)  评论(0)    收藏  举报

导航