First of all they belong to different categories: Prototype is creational one, Flyweight is structural one.
In Prototype objects' creation go through cloning, it ease object's creation. By making a request for cloning we create new cloned object each time.
In Flyweight by making a request we try to reuse as much objects as possible by sharing them. New required object will be created if we don't find such one. It's being done for resource optimization.
While in Prototype we could clone even one object, Flyweight pattern makes sense to use when in the application we use big number of objects.
All described affect on implementation side as well.