Adam Lesperance > Project-Euler-0.20 > Project::Euler::Problem::P003

Download:
Project-Euler-0.20.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.20   Source  

NAME ^

Project::Euler::Problem::P003 - Solutions for problem 003 - Max prime factor

VERSION ^

version 0.20

HOMEPAGE ^

http://projecteuler.net/index.php?section=problems&id=3

SYNOPSIS ^

    use Project::Euler::Problem::P003;
    my $p3 = Project::Euler::Problem::P003->new;

    my $default_answer = $p3->solve;

DESCRIPTION ^

This module is used to solve problem #003

Here we find the maximum prime factor of a given number. Math::Big::Factor is used to generate a prime wheel that finds all of the prime factors. From there it's a simple matter of taking the last one in the array to find the max value.

This will eventually be changed to use a custom-build prime generator to stay in the spirit of the Project Euler.

Problem Attributes ^

*None*

SETUP ^

Problem Number

    003

Problem Name

    Max prime factor

Problem Date

    02 November 2001

Problem Desc

The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600,851,475,143?

Default Input

600,851,475,143

Default Answer

    6857

Has Input?

    Yes

Help Message

There is little to no customization for this problem, simply tell it what you want to factor with custom_input

INTERNAL FUNCTIONS ^

Validate Input

The restrictions on custom_input

    A positive integer

Solving the problem

Use factors_wheel to find all of the prime factors for the given number. Since the function always returns a sorted list, we can just return the last number in the returned array to find the max. In order to speed up the function whenever possible, a smaller wheel is generated if the number is less than 10 characters long

AUTHOR ^

Adam Lesperance <lespea@gmail.com>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2010 by Adam Lesperance.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: