--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Python_Problem_Set_1.tex Mon Aug 17 16:59:19 2009 +0530
@@ -0,0 +1,91 @@
+\documentclass[11pt]{article}
+\title{Basic Python Problem Set 1}
+\author{Asokan Pichai}
+\date{}
+\begin{document}
+\maketitle
+\section{Pyramids}
+\begin{enumerate}
+ \item Write a program to display the following pyramid. The number of lines in the pyramid should not be hard-coded.
+ It should be obtained from the user. The pyramid should appear as close to the centre of the screen as possible.
+ \begin{verbatim}
+ *
+ ***
+ *****
+ *******
+ \end{verbatim}
+ \item Write a program to display the following pyramid. The number of lines in the pyramid should not be hard-coded.
+ It should be obtained from the user. The pyramid should appear as close to the centre of the screen as possible.
+ \begin{verbatim}
+ *
+ * *
+ * * *
+ * * * *
+ \end{verbatim}
+ \item Write a program to display the following pyramid. The number of lines has to be a parameter obtained from the
+ user. The pyramid must appear aligned to the left edge of the screen.
+ \begin{verbatim}
+ 1
+ 2 2
+ 3 3 3
+ 4 4 4 4
+ \end{verbatim}
+ \item Write a program to display the following pyramid. The number of lines has to be a parameter obtained from the
+ user. The pyramid must appear aligned to the left edge of the screen.
+ \begin{verbatim}
+ 1
+ 2 4
+ 3 6 9
+ 4 8 12 16
+ 5 10 15 20 25
+ \end{verbatim}
+ \item Write a program to display the following output. The last number where the program will stop printing has to
+ be a parameter obtained from the user. The pyramid must appear aligned to the left edge of the screen. Note that
+ depending on the last number, the base of the pyramid may be smaller than the line above it.
+ \begin{verbatim}
+ 1
+ 2 3
+ 4 5 6
+ 7 8 9 10
+ 11 12
+ \end{verbatim}
+\end{enumerate}
+\section{Some mathematics}
+\begin{enumerate}
+ \item Write a program to calculate the gcd of two numbers.
+ \item Write a program to generate all the Armstrong numbers: three numbers that are equal to the sum of the cubes of
+ their digits: that is $abc = a^3 + b^3 + c^3$
+ \item Write a program that lists all four digit numbers that are perfect squares \emph{and} have all their digits
+ even. An example is $6400$ which is $80^2$. Note that in order to be listed a four digit number must satisfy
+ both criteria. For example, $5625$ is a square, it does not have all digits even and
+ $4842$ is not a square and hence they should not appear in the output. You can assume that two functions
+ $areDigitsEven()$ and $isSquare()$ are available. (Please ask the instructor for the exact location of these
+ functions and copy them to your area.)
+\end{enumerate}
+\section{Code}
+\begin{verbatim}
+#-------------------------------- #
+# Accepts an integer and returns #
+# True if all digits are even #
+# False otherwise #
+#-------------------------------- #
+def areDigitsEven( n ):
+ while n > 0:
+ if (n % 10) %2 != 0:
+ return False
+ n = n / 10
+ return True
+#-------------------------------- #
+# Accepts an integer and returns #
+# True if it is a perfect square #
+# False otherwise #
+#-------------------------------- #
+def isSquare( n ):
+ i = 1
+ while i * i < n:
+ i += 1
+ return i * i == n
+
+\end{verbatim}
+\end{document}
+