Given a certain integer ```n```, we need a function ```big_primefac_div()```, that give an array with the highest prime factor and the highest divisor (not equal to n).
Let's see some cases:
```python
big_primefac_div(100) == [5, 50]
big_primefac_div(1969) == [179, 179]
```
If n is a prime number the function will output an empty list:
```python
big_primefac_div(997) == []
```
If ```n``` is an negative integer number, it should be considered the division with tha absolute number of the value.
```python
big_primefac_div(-1800) == [5, 900]
```
If ```n``` is a float type, will be rejected if it has a decimal part with some digits different than 0. The output "The number has a decimal part. No Results". But  ```n ``` will be converted automatically to an integer if all the digits of the decimal part are 0.
```python
big_primefac_div(-1800.00) == [5, 900]
big_primefac_div(-1800.1) == "The number has a decimal part. No Results"
```
Optimization and fast algorithms are a key factor to solve this kata.
Happy coding and enjoy it!

def big_primefac_div(n):
    #We need only absolute values
    n = abs(n)
    maxi = 0
    #Checking if the number has a decimal part
    if n % 1 == 0:
        #Loop for finding Biggest Divisor
        listy = [num for num in range(2, int(n**.5 + 1)) if n % num == 0]
        fancy_list = list(listy)
        for number in listy:
            temp_numb = n // number
            fancy_list.append(int(temp_numb))
        #Loop for finding Biggest Prime Factor
        for numb in sorted(fancy_list, reverse=True):            
            for i in range(2, int(numb**.5 + 1)):
                if numb % i == 0:
                    break
            else:
                maxi = numb
                break
        if fancy_list:
            return [maxi, max(set(fancy_list))]
        #In case we gonna have one number as prime factor itself
        else:
            return []
    else:
        return ("The number has a decimal part. No Results")

def big_primefac_div(n):
    #We need only absolute values
    n = abs(n)
    maxi = 0
    #Checking if the number has a decimal part
    if n % 1 == 0:
        #Loop for finding Biggest Divisor
        listy = [num for num in range(2, int(n**.5 + 1)) if n % num == 0]
        fancy_list = list(listy)
        for number in listy:
            temp_numb = n // number
            fancy_list.append(int(temp_numb))
        #Loop for finding Biggest Prime Factor
        for numb in sorted(fancy_list, reverse=True):            
            for i in range(2, int(numb**.5 + 1)):
                if numb % i == 0:
                    break
            else:
                maxi = numb
                break
        if fancy_list:
            return [maxi, max(set(fancy_list))]
        #In case we gonna have one number as prime factor itself
        else:
            return []
    else:
        return ("The number has a decimal part. No Results")