diff --git a/equidigital.py b/equidigital.py new file mode 100644 index 0000000..7d78a9e --- /dev/null +++ b/equidigital.py @@ -0,0 +1,68 @@ +import math +MAX = 10000; + +primes = []; + +def sieveSundaram(): + + marked = [False] * int(MAX / 2 + 1); + + for i in range(1, int((math.sqrt(MAX) - 1) / 2) + 1): + for j in range((i * (i + 1)) << 1, + int(MAX / 2) + 1, 2 * i + 1): + marked[j] = True; + + primes.append(2); + + for i in range(1, int(MAX / 2) + 1): + if (marked[i] == False): + primes.append(2 * i + 1); + +def isEquidigital(n): + + if (n == 1): + return True; + + original_no = n; + sumDigits = 0; + while (original_no > 0): + sumDigits += 1; + original_no = int(original_no / 10); + + pDigit = 0; + count_exp = 0; + p = 0; + i = 0; + while (primes[i] <= int(n / 2)): + + while (n % primes[i] == 0): + + p = primes[i]; + n = int(n / p); + + count_exp += 1; + + while (p > 0): + pDigit += 1; + p = int(p / 10); + + while (count_exp > 1): + pDigit += 1; + count_exp = int(count_exp / 10); + i += 1; + + if (n != 1): + while (n > 0): + pDigit += 1; + n = int(n / 10); + + return (pDigit == sumDigits); + +sieveSundaram(); + +print("Printing first few Equidigital", + "Numbers using isEquidigital()"); +for i in range(1, 20): + if (isEquidigital(i)): + print(i, end = " "); + diff --git a/perfect.py b/perfect.py new file mode 100644 index 0000000..1fd22ca --- /dev/null +++ b/perfect.py @@ -0,0 +1,11 @@ +# Python Program to find Perfect Number using For loop + +Number = int(input(" Please Enter any Number: ")) +Sum = 0 +for i in range(1, Number): + if(Number % i == 0): + Sum = Sum + i +if (Sum == Number): + print(" %d is a Perfect Number" %Number) +else: + print(" %d is not a Perfect Number" %Number) \ No newline at end of file diff --git a/special_twodigit.py b/special_twodigit.py new file mode 100644 index 0000000..7616181 --- /dev/null +++ b/special_twodigit.py @@ -0,0 +1,22 @@ +def specialNumber(n): + + # Checking whether entered + # number is 2 digit or not + if (n < 10 or n > 99): + print("Invalid Input! Number", + " should have 2 digits only") + else: + first = n // 10 + last = n % 10 + sum = first + last + pro = first * last + if ((sum + pro) == n): + print(n ," is a Special ", + "Two-Digit Number") + else: + print(n , " is Not a ", + "Special Two-Digit Number") + +# Driver code +n = 59 +specialNumber(n) \ No newline at end of file diff --git a/strong.py b/strong.py new file mode 100644 index 0000000..a13a778 --- /dev/null +++ b/strong.py @@ -0,0 +1,16 @@ +sum1=0 +num=int(input("Enter a number:")) +temp=num +while(num): + i=1 + f=1 + r=num%10 + while(i<=r): + f=f*i + i=i+1 + sum1=sum1+f + num=num//10 +if(sum1==temp): + print("The number is a strong number") +else: + print("The number is not a strong number") \ No newline at end of file