regorg

Untitled

Apr 2nd, 2020
622
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.46 KB | None | 0 0
  1. def sum_digits(x):
  2.     num_to_str = str(x)
  3.     num_of_digits = len(num_to_str)
  4.     sum = 0
  5.     while num_of_digits >= 1:
  6.         temp = x % 10
  7.         x /= 10
  8.         x = int(x)
  9.         num_of_digits -= 1
  10.         sum += temp
  11.     return sum
  12.  
  13. def is_prime(i):
  14.   status = False
  15.   i = int(i)
  16.   if i > 2:
  17.     for j in range(2, i):
  18.         if (i % j) == 0:
  19.             status = False
  20.             break
  21.         else:
  22.             status = True
  23.   elif i == 2:
  24.     status = True
  25.   return status
  26.  
  27. def harshad(x):
  28.   sum = 0
  29.   for i in range(0, x):
  30.       temp = i
  31.       num_to_str = str(i)
  32.       num_of_digits = len(num_to_str)
  33.       if is_prime(i) and i >= 10:
  34.           i /= 10
  35.           i = int(i)
  36.           num_of_digits -= 1
  37.           temp2 = i
  38.           sum_of_digits = sum_digits(i)
  39.           if temp2 % sum_of_digits == 0:
  40.             temp2 /= sum_of_digits
  41.             if is_prime(temp2):
  42.               while num_of_digits >= 1  and sum_of_digits != 0 and i % sum_of_digits == 0:
  43.                   i /= 10
  44.                   i = int(i)
  45.                   num_of_digits -= 1
  46.                   if num_of_digits == 1:
  47.                       print(f'Added number: {temp}, is prime: {is_prime(temp)}')
  48.                       sum += temp
  49.                   else:
  50.                     sum_of_digits = sum_digits(i)
  51.       else:
  52.           continue
  53.   return sum
  54.  
  55.  
  56. num = int(input("Enter number: "))
  57. print(f'Sum of numbers lesser than {num} is {harshad(num)}')
Advertisement
Add Comment
Please, Sign In to add comment