好高兴 一上午做了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 ",dmax); // cout<<max<<endl; } return 0; }