If n is a positive integer,factorial(n!) is the product of all the positive integers from 1 up to the given integer. However, different types of functions are applied,including the anonymous lambda to generate the factorial number, because it is simple and returns a value ( a new function ), which can be assigned a name.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 | #On the name of ALLAH and may the blessing and peace of Allah
#be upon the Messenger of Allah Mohamed Salla Allahu Aliahi Wassalam.
#Author : Fouad Teniou
#Date : 13/01/09
#version :2.4
import random
class NegativeNumberError(ArithmeticError):
""" attempted imporper operation on negative number"""
pass
class ZeroNumberException(ArithmeticError):
""" attempted operation on zero with an agreed solution"""
pass
def errors(number):
""" Raises NegativeNumberError if number less than 0, and
raises ZeroNumberException if number is equal to 0."""
if number < 0:
raise NegativeNumberError,\
"\n<The number must be greater or equal to 0 \n"
elif number == 0:
raise ZeroNumberException,\
"\n<It is agreed per convention that 0!= 1 \n"
elif number >0:
pass
return number
while 1:
#get users answer to use Factorial program or exit the while loop
Answer = raw_input("\n<Would you like to use Factorial program, yes or no?:\t")
if Answer == "yes":
print '\n\t\t\t','','\5'*49
print '\t\t\t\t Welcome to Factorial n! Program'
print '\t\t\t','','\5'*49,'\n'
try:
#get users entered numbers and compute factorial
userValue = float(raw_input('<Please enter a number :\t'))
errors(userValue)
Y=random.randrange(int(userValue)+1)
mult = lambda d:reduce(lambda x,y:x*y,range(1,int(Y)+1))
print '\n<A random list of factorial between 0 and %s will be displayed' % int(userValue)
print '\n\t\t',str(0)+'!=',int(1),'\n'
for Y in range(1,int(Y)+1):
print '\n\t\t',str(Y)+'!=',mult(int(Y)),'\n'
#Factorial raise ValueError if input is not numerical
except ValueError:
print "\n<The entered value is not a number"
#Factorial raises Negative number exception
except NegativeNumberError,exception:
print exception
#Factorial raises zero number exception
except ZeroNumberException,exception:
print exception
elif Answer == "no":
break
#############################################################################
#c:\hp\bin\Python>python "C:\Documents\Programs\classes\Factorial7
#
#<Would you like to use Factorial program, yes or no?: yes
#
# ?????????????????????????????????????????????????
# Welcome to Factorial n! Program
# ?????????????????????????????????????????????????
#
#<Please enter a number : 7
#
#<A random list of factorial between 0 and 7 will be displayed
#
# 0!= 1
#
#
# 1!= 1
#
#
# 2!= 2
#
#
#<Would you like to use Factorial program, yes or no?: yes
#
# ?????????????????????????????????????????????????
# Welcome to Factorial n! Program
# ?????????????????????????????????????????????????
#
#<Please enter a number : -7
#
#"\n<The number must be greater or equal to 0 \n"
#
#
#<Would you like to use Factorial program, yes or no?: yes
#
# ?????????????????????????????????????????????????
# Welcome to Factorial n! Program
# ?????????????????????????????????????????????????
#
#<Please enter a number : 0
#
#<It is agreed per convention that 0!= 1
#
#
#<Would you like to use Factorial program, yes or no?: yes
#
# ?????????????????????????????????????????????????
# Welcome to Factorial n! Program
# ?????????????????????????????????????????????????
#
#<Please enter a number : test
#
#<The entered value is not a number
#
#<Would you like to use Factorial program, yes or no?: yes
#
# ?????????????????????????????????????????????????
# Welcome to Factorial n! Program
# ?????????????????????????????????????????????????
#
#<Please enter a number : 7
#
#<A random list of factorial between 0 and 7 will be displayed
#
# 0!= 1
#
#
# 1!= 1
#
#
# 2!= 2
#
#
# 3!= 6
#
#
# 4!= 24
#
#
# 5!= 120
#
#
#<Would you like to use Factorial program, yes or no?: no
#
#c:\hp\bin\Python>
########################### Factorial ref FT (2 D A Missr)
#########################################################################################
#Version : Python 3.2
#import random
#from functools import reduce
#class NegativeNumberError(ArithmeticError):
# """ attempted imporper operation on negative number"""
#
# pass
#class ZeroNumberException(ArithmeticError):
# """ attempted operation on zero with an agreed solution"""
#
# pass
#
#def errors(number):
# """ Raises NegativeNumberError if number less than 0, and
# raises ZeroNumberException if number is equal to 0."""
#
# if number < 0:
# raise NegativeNumberError("\n<The number must be greater or equal to 0 \n")
# elif number == 0:
# raise ZeroNumberException("\n<It is agreed per convention that 0!= 1 \n")
# elif number >0:
# pass
#
# return number
#while 1:
# #get users answer to use Factorial program or exit the while loop
# Answer = input("\n<Would you like to use Factorial program, yes or no?:\t")
# if Answer == "yes":
#
# print('\n\t\t\t','','\5'*49)
# print('\t\t\t\t Welcome to Factorial n! Program')
# print('\t\t\t','','\5'*49,'\n')
#
# try:
# #get users entered numbers and coompute factorial
# userValue = float(input('<Please enter a number :\t'))
#
# errors(userValue)
# Y=random.randrange(int(userValue)+1)
# mult = lambda d:reduce(lambda x,y:x*y,list(range(1,int(Y)+1)))
#
# print('\n<A random list of factorial between 0 and %s will be displayed' % #int(userValue))
# print('\n\t\t',str(0)+'!=',int(1),'\n')
# for Y in range(1,int(Y)+1):
# print('\n\t\t',str(Y)+'!=',mult(int(Y)),'\n')
#
# #Factorial raise ValueError if input is not numerical
# except ValueError:
# print("\n<The entered value is not a number")
#
# #Factorial raises Negative number exception
# except NegativeNumberError as exception:
# print(exception)
#
# #Factorial raises zero number exception
# except ZeroNumberException as exception:
# print(exception)
#
# elif Answer == "no":
# break
|
I tried 27!,77!,107!, and the results were up to 11!,47!, and 44!. However, one of my hobbies is painting, and I think the way the factorials numbers are displayed if you run my program on DOS is artistic, thus, I am willing to draw a canvas painting, to match my results, good luck everyone for the match.