hdu 1492

好高兴 一上午做了2个题  题意:求素因子只有2 3 5 7 数 约束的个数  我用的时搜索计数法  感觉还应该有比较不错的组合数学方法
#include<iostream> using namespace std; __int64 dmax; int prime[4]; void dfs(int t) { if(t>=4) { dmax++; return ; } for(int i=0;i<=prime[t];i++) dfs(t+1); } int main() { int i; __int64 n; int a[]={2,3,5,7}; while(scanf("%I64d",&n)!=EOF) { if(n==0) break; dmax=0; prime[0]=prime[1]=prime[2]=prime[3]=0; for(i=0;i<4;i++) { while(n%a[i]==0) { n/=a[i]; prime[i]++; } } dfs(0); printf("%I64d\n",dmax); // cout<<max<<endl; } return 0; }

 

posted @ 2014-04-29 11:47  _一千零一夜  阅读(163)  评论(0编辑  收藏  举报