You will be given a list of numbers. Each number is assigned a score. Its score
ID: 3720162 • Letter: Y
Question
You will be given a list of numbers. Each number is assigned a score. Its score is determined as follows:
A number’s base score is the value of the number itself. If the number is a palindrome it scores is doubled.
If the number is a near prime its score is doubled.
If the number is a nice number its score is tripled.
Consider how to determine the score of a number 89. It is not a palindrome and but it is nice and near prime:
Base score: 89
Score after palindrome check: 89 (remains same as not a palindrome) Score after near prime check: 188 (doubled as 89 is prime)
Score after nice check: 534 (tripled as 89 is nice)
Consider the number 101:
It is a palindrome, it is prime but it is not a nice number:
Base score: 101
Score after palindrome check: 202 (doubled as it’s a palindrome) Score after near prime check: 404 (doubled as 101 a prime) Score after nice check: 404 (not tripled as 101 is not nice)
Given a list of numbers entered by the user output the list of numbers in sorted order (ascending) of their scores. Also include the score achieved with each number separated by a comma after the number.
For example if the user enters 89
101
You have to output
101,404 89, 534
How would you write this in Python 3?
Explanation / Answer
I don't know the number logic that's why that logic not included
def prime_check(num): #prime number check
if num > 1:
for i in range(2,num):
if (num % i) == 0:
return True;
break
return False;
def palindrom_check(num):
temp=num #palindrome number check
rev=0
while(num>0):
dig=num%10
rev=rev*10+dig
num=num//10
if(temp==rev): #checking given number is equal to reverse or not
return True
else:
return False
base_numbers_scores=[101,89] #list of base scores numbers
after_base_number_scores=[]
for num in base_numbers_scores:
num_after_changes=num;
if(prime_check(num)):
num_after_changes=num_after_changes+num_after_changes; #doubling numbers
if(palindrom_check(num)):
num_after_changes=num_after_changes+num_after_changes;
after_base_number_scores.append(num_after_changes)
for i in range(len(base_numbers_scores)): #display values
print(base_numbers_scores[i],after_base_number_scores[i])
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.