Boston number testcase failed - 2/6

#include

using namespace std;

int findprimefactors(long long m){
int primeFactors = 0;

while (m % 2 == 0) {
    primeFactors += 2;
    m /= 2;
}

// n must be odd at this point, so we can skip even numbers
for (int i = 3;i <= m; i += 2) {
    // While i divides n, add i and divide n
    while (m % i == 0) {
        primeFactors += i;
        m /= i;
    }
}

// This condition is to check if n is a prime number greater than 2
if (m > 2) {
    primeFactors += m;
}

return primeFactors;

}

int main(){
long long n;
cin>>n;

if(n > 2){
    findprimefactors(n);
}

int factors = findprimefactors(n);

int ans = 0;
long long temp = n;
while(temp > 0){
    int digit = temp % 10;
    ans += digit;
    temp /= 10;
    }

if(ans == factors){
    cout<<"1"<<endl;
}else{
    cout<<"0"<<endl;
}

return 0;

}