Welcome, guest | Sign In | My Account | Store | Cart

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.

Python, 223 lines
  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.

Created by Fouad Teniou on Fri, 16 Jan 2009 (MIT)
Python recipes (4591)
Fouad Teniou's recipes (37)

Required Modules

Other Information and Tasks