题意:给出一个n求出n=i*j+i+j共有几种组合,i,j>0.
开始挺傻的、没想到化成因式的乘积、- - 、
思路:i*j+i+j=(i+1)*(j+1)=n+1
1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 int main() 5 { 6 long long n,m; 7 cin >> n; 8 while(n--) 9 { 10 cin >> m; 11 m++; 12 long long count = 0; 13 for(int i = 2; i <= sqrt(m); i++) 14 { 15 if(m%i==0) 16 count++; 17 } 18 cout << count << endl; 19 } 20 }
时间: 2024-10-13 02:37:46