Project Euler problem # 3 is this the most efficient approach in Python or can I do better? The problem statement: The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143 ?

This code takes 9 seconds!, is there a better way?

from time import time


def is_prime(number):
    for divisor in range(2, int(number ** 0.5) + 1):
        if number % divisor == 0:
            return False
    return True


def calculate_largest(number):
    # checking backwards to get the largest number first
    for divisor in range(int(number ** 0.5) + 1, 0, -1):   
        if is_prime(divisor) and number % divisor == 0:
            return divisor


if __name__ == '__main__':
    time1 = time()
    print(calculate_largest(600851475143))
    print(time() - time1)
order
You wrote:
    if is_prime(divisor) and number % divisor == 0:

that is, if A and B:.
But B is typically false and is quickly computed.
Prefer if B and A:
stride
Rather than
    for divisor in range(int(number ** 0.5) + 1, 0, -1):

you might want to begin with an odd number and then use a stride of -2.
You needn't special case for when number is a power of two,
since the input clearly isn't.
sieve
Consider sieving for the solution.