From 93f32afc22f524c6ac2469238ebe9261ec6eb444 Mon Sep 17 00:00:00 2001 From: anjali142 Date: Fri, 25 Oct 2019 16:26:35 +0530 Subject: [PATCH 1/4] perfect --- perfect.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 perfect.py 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 From 5634756059ce1614bf5e69faf7dc56b3f5069273 Mon Sep 17 00:00:00 2001 From: anjali142 Date: Fri, 25 Oct 2019 16:32:09 +0530 Subject: [PATCH 2/4] special_number --- special_twodigit.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 special_twodigit.py 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 From 5d6410e36f241137775d86cda749c2391bbd7188 Mon Sep 17 00:00:00 2001 From: anjali142 Date: Fri, 25 Oct 2019 16:38:19 +0530 Subject: [PATCH 3/4] strong_number --- strong.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 strong.py 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 From 87a87ff70e3e13996412d3b992fe2877b5e6be66 Mon Sep 17 00:00:00 2001 From: Anjali Deep <45489595+anjali142@users.noreply.github.com> Date: Mon, 28 Oct 2019 10:23:32 +0530 Subject: [PATCH 4/4] equidigital number A number n is called Equidigital if the number of digits in the prime factorization of n (including powers) is same as number of digits in n. For example 16 is an Equidigital number as its prime factorization is 2^4 and its prime factorization has total two digits (2 and 4) which is same as total number of digits in 16. --- equidigital.py | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 equidigital.py 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 = " "); +