     }
 }
 
-struct FactorWithPot {
-    init(f: BigUInt) {
+public struct FactorWithPot {
+    public init(f: BigUInt) {
         self.f = f
         self.e = 1
     }
-    init(f: BigUInt, e: Int) {
+    public init(f: BigUInt, e: Int) {
         self.f = f
         self.e = e
     }
     
-    var f: BigUInt = 0
-    var e: Int = 0
+    public var f: BigUInt = 0
+    public var e: Int = 0
 }
 
 

        return ret
    }
    
    func Divisors(p: BigUInt,cancel: CalcCancelProt?) -> [BigUInt]
    {
        let factors = Factor(p: p,cancel: cancel)
        if cancel?.IsCancelled() ?? false { return [1,p] }

        let pf = FactorCache.shared.Factor(p: n, cancel: cancel)
        self.init(pf: pf)
    }
    public init(pf : PrimeFactors) {
        self.unfactored = pf.unfactored
        factors = []
        
