Simple GCF calculator app
You can use sets to whittle down the possible GCFs.

for i, argument in enumerate(sys.argv[1:]):
    factors = set(n for n in range(2, int(argument) + 1) if int(argument) &amp; n is 0)
    print argument, factors
    if i is 0:
        possible_gcfs = factors
    else:
        possible_gcfs &amp;= factors
print "gcf is:", max(possible_gcfs | {1})


Better, use reduce:

def get_factors(x):
    factors = set(n for n in range(2, int(x) + 1) if int(x) % n is 0)
    print x, ':', factors
    return factors

possible_gcfs = reduce(set.intersection, map(get_factors, sys.argv[1:]))
print "gcf is:", max(possible_gcfs | {1})


Or if you don't need it to print out the factors of each number you can make it a bit more efficient by noting that the GCF must be no larger than the lowest of the arguments entered. 

arguments = map(int, sys.argv[1:])
possible_gcfs = range(2, min(arguments) + 1)
for argument in arguments:
    possible_gcfs = [n for n in possible_gcfs if argument % n is 0]
print "gcf is: ", max(possible_gcfs + [1])


... but this can again be simplified using reduce and noting that the gcf is associative

def gcf(a, b):
    a, b = int(a), int(b)
    return max(n for n in range(1, min(a, b) + 1) if a % n is 0 and b % n is 0)

print "gcf is:", reduce(gcf, sys.argv[1:])


(And as a comment pointed out there are plenty of other solutions posted to earlier questions and you could use fractions.gcd.)