Faits: Faits: A. Par contrat du 13 décembre 1983, la SI Y._ SA a remis à bail à X._ SA (magasin de confection) des locaux commerciaux dans un immeuble, à Lausanne; répartis sur quatre étages, les locaux représentent une surface totale de 618 m2. Conclu pour dix ans dès le 1er janvier 1984, le bail se renouvelait ensuite de cinq ans en cinq ans, sauf résiliation signifiée au moins une année à l'avance. En dernier lieu, le loyer mensuel net a été fixé à 9277 fr. à partir du 1er février 2000. Ce contrat succédait à plusieurs baux conclus pour les mêmes locaux dès 1950 par la société Z._ SA, devenue X._ SA en 1979. Depuis le 1er novembre 1994, C._ détenait la totalité du capital actions de la SI Y._ SA; il a acquis en son nom la propriété de l'immeuble en septembre 1998. A son décès, ses fils, A._ et B._, sont devenus propriétaires en main commune de l'immeuble, qui était géré par W._ (ci-après: la gérance). Par formule officielle du 30 juin 2000, la gérance a résilié le bail de X._ SA pour le 1er janvier 2004. Dans une lettre d'accompagnement, elle invoquait des motifs d'ordre économique. En effet, les nouveaux bailleurs avaient demandé à la gérance d'effectuer un calcul de rendement de l'immeuble, qui avait abouti à un résultat insuffisant; ils ont alors décidé de résilier le bail de X._ SA afin de pouvoir relouer les locaux à un loyer supérieur. Par formule officielle du 30 juin 2000, la gérance a résilié le bail de X._ SA pour le 1er janvier 2004. Dans une lettre d'accompagnement, elle invoquait des motifs d'ordre économique. En effet, les nouveaux bailleurs avaient demandé à la gérance d'effectuer un calcul de rendement de l'immeuble, qui avait abouti à un résultat insuffisant; ils ont alors décidé de résilier le bail de X._ SA afin de pouvoir relouer les locaux à un loyer supérieur. B. X._ SA a saisi la Commission de conciliation en matière de baux à loyer immobiliers du district de Lausanne. Elle concluait à l'annulation de la résiliation et, subsidiairement, à la prolongation du bail pour six ans à partir du 1er janvier 2004. A la suite de l'échec de la conciliation, la commission a prononcé l'annulation de la résiliation notifiée le 30 juin 2000. Par requête du 10 septembre 2001 adressée au Tribunal des baux du canton de Vaud, A._ et B._ ont conclu, à titre principal, à la confirmation de la résiliation du bail et, subsidiairement, à la fixation du loyer mensuel net à 20 000 fr. en cas de prolongation du bail au-delà du 1er janvier 2004. X._ SA a demandé le maintien de la décision de la commission et, pour le cas où la validité du congé serait admise, la prolongation du bail pour six ans à compter du 1er janvier 2004. Par jugement du 13 décembre 2002, le Tribunal des baux a admis la validité de la résiliation et accordé une prolongation unique du bail jusqu'au 30 juin 2006; il a rejeté la conclusion des demandeurs tendant à la fixation d'un loyer mensuel de 20 000 fr. en cas de prolongation du bail. Statuant le 18 août 2004 sur recours de X._ SA, la Chambre des recours du Tribunal cantonal du canton de Vaud a rejeté le recours et confirmé le jugement attaqué. Statuant le 18 août 2004 sur recours de X._ SA, la Chambre des recours du Tribunal cantonal du canton de Vaud a rejeté le recours et confirmé le jugement attaqué. C. X._ SA (la défenderesse) interjette un recours en réforme. A titre principal, elle demande au Tribunal fédéral de réformer l'arrêt attaqué en ce sens que la résiliation du 30 juin 2000 est annulée. A titre subsidiaire, elle conclut à l'annulation de la décision cantonale et au renvoi de la cause aux autorités judiciaires vaudoises pour complément d'instruction. Plus subsidiairement, elle demande la réforme de l'arrêt attaqué en ce sens que le bail est prolongé une seule fois jusqu'au 31 décembre 2009, voire pour la première fois jusqu'au 30 juin 2006. A._ et B._ (les demandeurs) proposent le rejet du recours.