这是我打印除数的代码,然后是给定数字的除数。
现在假设我采用 2 个测试用例:5 和 8;此代码将 5 作为 2 和 8 作为 6 的计数(即它添加了先前的计数)。
即使我声明它,因为int count = 0;
它返回相同的输出。
当我声明int count = 0
inside function时,会出现另一个问题factors
。
对于所有情况,代码都将计数设为 0。
#include<iostream>
using namespace std;
int count;
long long factors(long n, long f=1)
{
if(n%f==0) {
cout << f << endl;
count++;
}
if(f==n) {
return 0;
}
factors(n,f+1);
return count;
}
int main()
{
int n;
int t;
cin >> t;
while(t--)
{
cin >> n;
cout << factors(n) << endl;
}
return 0;
}