On Sun, 7 Feb 2010 15:17:08 -0800 (PST), davedo2 <dave...@gmail.com> wrote:
> I want to run a range of numbers through the factor() function and if
> I run a loop through a list as in:
> for i in [25,37,205]:
>     print i.factor()
> it works fine, but if I try
> for i in range(1,5):
>     print i.factor()
> I get the error message 'int' object has no attribute 'factor' - how
> do I get
> factor() to work with a range? Thanks...Dave
> 

range() returns Python integers, which do not have a factor() method.
You need to get Sage integers instead, so use srange() or xsrange():

sage: srange(5)
[0, 1, 2, 3, 4]
sage: type(srange(5)[2])
<type 'sage.rings.integer.Integer'>
sage: for i in srange(1, 5):
          print i.factor()
1
2
3
2^2


Best,
Alex


-- 
Alex Ghitza -- Lecturer in Mathematics -- The University of Melbourne
-- Australia -- http://www.ms.unimelb.edu.au/~aghitza/

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to