这个题数据量小,不容易超时. #include<stdio.h> long long fac(int n) { ; ; i <= n ; i++) { m = i*m; } return m; } int main() { int m,n,i; int a; scanf("%d",&a); ; i <= a ; i++) { scanf("%d %d",&m,&n); long long u = fac(m)/(fac
前奏:统计 n! 中的所有质因子中pi的个数 普通方法:复杂度O(nlogn), 当n为10的18次方无法承受 // 复杂度O(nlogn), n为10的18次方无法承受 int cal(int n, int p){ ; ; i <= n; i++){ int temp = i; ){ ans++; temp /= p; // temp除以p } } return ans; } 改进后的方法:复杂度只有O(logn) int cal(int n, int p){ ; while (n){ ans