If I remember right, Bonaparte thought it was best to have Corps d'armee with varying numbers of divisions, if for no other reason than to confuse the opposition about numbers/strength. But corps strength frequently varied by the evident talents of certain officers for commanding large numbers. The Divisions themselves could widely vary in strength.
When the Army of the Potomac was first officially organized into army corps in early March, 1862, the first corps, under Gen. McDowell, had four divisions, and others had three. Banks' corps to the westward had only two divisions, his own and that of Gen. Shields.
Henry W. Halleck had observed in his military textbook in 1846...
"An active army in the field should be commanded by a general, or, as is done in some European countries, by a marshal. These may be regarded as of assimilated rank.
A corps d'armée should, be commanded by a Lieutenant-general. This rule is almost universal in Europe. The number of marshals in France under Napoleon was so great, that officers of this grade were often assigned to corps d'armée.
A grand division of an army should be commanded by a General of Division. In England, the assimilated grade is that of major-general, and in France at the present time, the younger lieutenant-generals, or the maréchaux-de-camp, command divisions.
A brigade should be commanded by a Brigadier-general. At the present time in the French service, maréchaux-de-camp act as commanders of brigades.
The several corps d'armée are designated by numbers, 1st, 2d, 3d, &c., and in the same way the several divisions in each corps d'armée, and the several brigades in each division. When the number of troops are placed on a war footing, each corps d'armée ordinarily contains from twenty to thirty thousand men.
The command of these several corps d'armée, divisions, and brigades, is taken by the officers of the corresponding grades according to seniority of rank, and without reference to arms, unless otherwise directed by the generalissimo, who should always have the power to designate officers for special commands."
At the close of April, 1864 the Army of the Potomac's corps numbered as follows... functionally 20-30K essentially...
General Sherman opined that no field commander could really handily manage more than 60,000 troops in the field. For his march to the sea, with about that number, he reorganized his force, functionally divided into two wings, (essentially corps d'armee), viz. the Right wing, under Gen. Howard with 33,000, and the Left wing under Gen. Slocum, 30,000.