An approach for factoring general boolean functions was described in [15, 16] which is based on graph partitioning algorithms. In this paper, we present a very fast algorithm for recognizing and factoring read-once functions which is needed as a dedicated factoring subroutine to handle the lower levels of that factoring process. The algorithm is based on algorithms for cograph recognition and on checking normality. For non-read-once functions, we investigate their factoring based on their corresponding graph classes. In particular, we show that if a function F is normal and its corresponding graph is a partial k-tree, then F is a read 2k function and a read 2k formula for F can be obtained in polynomial time. Caesarea Rothschild Institute and Department of Computer Science, University of Haifa, Mt. Carmel, Haifa 31905, Israel, golumbic@cs.haifa.ac.il Caesarea Rothschild Institute, University of Haifa, Mt. Carmel, Haifa 31905, Israel, amintz@vlsi.co.il ? School of Computer Science an...