For 3 of the test cases, my code fails
#include
#include
#include<math.h>
using namespace std;
int digitSum(int a)
{
int sum = 0;
while(a != 0)
{
sum += a%10;
a = a/10;
}
return sum;
}
bool isPrime(int n)
{
if (n <= 1)
return false;
if (n <= 3)
return true;
if (n % 2 == 0 || n % 3 == 0)
return false;
for (int i = 5; i * i <= n; i = i + 6)
if (n % i == 0 || n % (i + 2) == 0)
return false;
return true;
}
int main() {
int a;
int sum1=0,sum2=0;
vector<int> b;
cin>>a;
for(int i=2;i<=sqrt(a);i++)
{
if(isPrime(i))
{
int x=0;
if(a%i == 0)
{
x = a/i;
b.push_back(i);
while(x>1)
{
if(x%i == 0)
{
b.push_back(i);
}else
{
x=0;
}
x = x/i;
}
}else
continue;
}else
continue;
}
sum1 = digitSum(a);
for(int j=0;j<b.size();j++)
{
sum2 += digitSum(b[j]);
}
if(sum1 == sum2)
cout<<1;
else
cout<<0;
return 0;
}
Please help me, where I am going wrong.
I wasted a complete hour in debugging the code.