Write pseudocode to accept as input names of an unspecified number of equipment rented, the name of the company, the number of days the equipment was rented for and the sales amount. The algorithm must determine the number of times each type of equipment was rented, as well as the total sales for all rentals. The algorithm should also print a list of companies that rented equipment for more than 30 days . ( Make use of arrays )

Here's a pseudocode solution to the problem:

1. Initialize an empty dictionary called "equipmentCount" to store the count of each equipment type.
2. Initialize a variable "totalSales" to 0 to store the total sales for all rentals.
3. Initialize an empty list called "longTermRentals" to store the companies that rented equipment for more than 30 days.
4. Accept user input for the name of the company, equipment rented, number of days rented, and sales amount.
5. Repeat the following steps until the user chooses to stop inputting data:
6. If the number of days rented is greater than 30, append the company name to the "longTermRentals" list.
7. If the equipment rented exists as a key in the "equipmentCount" dictionary, increment its count by 1. Otherwise, add a new key-value pair to the dictionary with the equipment as the key and count initialized to 1.
8. Add the sales amount to the "totalSales" variable.
9. Print the count of each equipment type:
10. Iterate over the key-value pairs in the "equipmentCount" dictionary.
11. Print the equipment type and its count.
12. Print the total sales.
13. If the "longTermRentals" list is not empty, print "Companies that rented equipment for more than 30 days:" and then print each company name from the list on a new line.

Here's the pseudocode representation:

```
equipmentCount = {} # An empty dictionary to store equipment counts
totalSales = 0 # Total sales for all rentals
longTermRentals = [] # List of companies that rented equipment for more than 30 days

# Accept user input for rentals
while True:
company = input("Enter the name of the company (or 'stop' to finish): ")
if company == "stop":
break

equipment = input("Enter the name of the equipment rented: ")
daysRented = int(input("Enter the number of days the equipment was rented for: "))
salesAmount = float(input("Enter the sales amount: "))

if daysRented > 30:
longTermRentals.append(company)

if equipment in equipmentCount:
equipmentCount[equipment] += 1
else:
equipmentCount[equipment] = 1

totalSales += salesAmount

# Print the counts of each equipment type
print("Equipment counts:")
for equipment, count in equipmentCount.items():
print(equipment, ":", count)

# Print the total sales
print("Total sales:", totalSales)

# Print companies renting equipment for more than 30 days
if longTermRentals:
print("Companies that rented equipment for more than 30 days:")
for company in longTermRentals:
print(company)
```

Remember that this is just a pseudocode solution, and you'll need to implement it in a programming language of your choice. The pseudocode describes the logical steps to solve the problem and should give you a good starting point.