Faits: Faits: A. A._, né en 1957, a travaillé en qualité de maçon jusqu'au 26 mars 1999, date à laquelle il a dû interrompre son activité. Victime d'une chute d'un échafaudage en 1985, il a subi une fracture du pilon tibial et du tiers distal du péroné droit, dont les séquelles ont nécessité plusieurs opérations et entraîné diverses périodes d'incapacité de travail. Le 2 mars 2000, il a présenté une demande tendant à la mise en oeuvre par l'assurance-invalidité d'une mesure de reclassement dans une nouvelle profession. L'Office cantonal de l'assurance-invalidité du canton de Genève a mis en oeuvre des stages d'observation professionnelle à la Fondation R._ (du 27 août au 25 novembre 2001) et d'orientation professionnelle au Centre H._ (du 18 février au 19 mai 2002). Par décision du 26 août 2002, l'office AI a alloué à l'assuré, à partir du 1er mars 2000, une demi-rente d'invalidité fondée sur un taux de 64 %. Par décision du 26 août 2002, l'office AI a alloué à l'assuré, à partir du 1er mars 2000, une demi-rente d'invalidité fondée sur un taux de 64 %. B. Saisi d'un recours de l'assuré, le Tribunal cantonal des assurances sociales du canton de Genève a annulé la décision entreprise et alloué à l'intéressé une rente entière d'invalidité à partir du 1er mars 2000 (jugement du 15 avril 2004). B. Saisi d'un recours de l'assuré, le Tribunal cantonal des assurances sociales du canton de Genève a annulé la décision entreprise et alloué à l'intéressé une rente entière d'invalidité à partir du 1er mars 2000 (jugement du 15 avril 2004). C. L'office AI interjette recours de droit administratif contre ce jugement, dont il demande l'annulation, en concluant à la confirmation de sa décision du 26 août 2002. L'intimé conclut au rejet du recours, sous suite de dépens. L'Office fédéral des assurances sociales a renoncé à présenter des déterminations. 