Count is slow Oracle
the query does not return 43 rows but 1 row that contains the number 43
the execution time of a query does not depend on the number of rows it return but on the number of rows it inspects.
from your query plan you can see your query makes a full table scan. This means it reads the table from begin to the end and reads all 16 millions of rows of the table (table scan rows gotten 16656961). 
for this it has to read about 11G data (physical read total bytes 11768365056) and executes 55,000 read operations (physical read total IO requests 55724). 55,000 reads in 60 seconds (user I/O wait time 6172) means 1.1 ms per read. This is a good value.


You have to decrease the number of row your query has to process. An index may help Oracle to count efficiently the number of rowa you are interested in. 


The most selective subclause of your where-clause will be the last_upd subclause. So make an index on this column. 
You should add the columns from the other where-clauses (and the select-clause) to the index, too. So Oracle does not have to lookup each fitting row in that is found by the index in the table to get the last_upd_by and last_name values. 
The last_upd_by subclause is the next selective clause so it schould be the next column in the index. So you should make an inex on the columns (last_upd, last_upd_by, last_name) in this order.