#include #include unsigned forever=0; unsigned bitmask[40]; unsigned kolik(unsigned a, unsigned b, unsigned c, unsigned k) { unsigned bma; unsigned posun,krat; bma=b-a; bma = bma & bitmask[k]; if(!bma) return 0; if(c==0) { forever=1; return 0; } if(bma%c == 0) { return bma/c; } posun=(1<>(32-i); /* printf("bitmask %8x\n",bitmask[i]);*/ } /* printf("bitmask %8x\n",bitmask[32]);*/ while(1) { scanf("%d %d %d %d",&a,&b,&c,&k); if((a|b|c|k)==0) break; forever=0; r=kolik(a,b,c,k); if(!forever) printf("%u\n",r); else printf("FOREVER\n"); } return 0; }