友人が SDL プログラムのコードを少し教えてくれました。ランダムな色になることはわかっていますが、どのように機能するかはわかりません。コードは次のとおりです。
 int unsigned temp = 10101;//seed
    for(int y = 0;y < times;y++){
        temp = temp*(y+y+1);
        temp = (temp^(0xffffff))>>2;
        //printf("%x\n",temp);
        SDL_FillRect(sprite[y],NULL,temp);
        SDL_BlitSurface(sprite[y],&paste[y],rScreen(),NULL);
        }
私の質問は、このコードはどのように機能し、どのようにランダムな色を作るのですか