Delhi odd even problem

pls check my code.it is showing an infinite loop of yes in the output.i am unable to find out the mistake.

using namespace std;

int main() {

int n;
cin>>n;
int no;
while(n>0){

int suma=0;

int sumb=0;
    cin>>no;
    while(no>0){
        int ld=no%10;
        if(ld%2==0){
            suma=suma +ld;
        }
        else{
            sumb=sumb+ld;
        }
        no=no/10;
    }
    if(suma%4==0){
        cout<<"Yes"<<endl;
    }
    else if(sumb%3==0 ){
        cout<<"Yes"<<endl;
    }
    else{
        cout<<"No"<<endl;
    }
    n=n-1;
}
return 0;

}