欧拉项目004:寻找最大的回文数

Problem 4: Largest palindrome product

A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.

Find the largest palindrome made from the product of two 3-digit numbers.

寻找有两个三位数相乘的最大回文数

我的python代码如下:

#method1:
def reverse(s):
    return s[::-1]
maxPalindromic = 0
for i in range(100,999):
    for j in range(i,999):
        s = str(i*j)
        if s == reverse(s):
            if int(s)>maxPalindromic:
                maxPalindromic = int(s)
print maxPalindromic
#method2:
def reverse(s):
    return s[::-1]
def canBeDivide(num):
    for i in range(100,1000):
        if num%i==0 and num/i<1000:
            return True
    return False
def findMaxPalindromic():
    for x in range(9,0,-1):
        for y in range(9,-1,-1):
            for z in range(9,-1,-1):
                num = 100001*x+10010*y+1100*z
                if canBeDivide(num):
                    return num
print findMaxPalindromic()

方法一,比较直观,容易理解;

方法二,效率高。

有不懂得或者有更好的想法,可以留言,互相学习啊!

欧拉项目004:寻找最大的回文数,布布扣,bubuko.com

时间: 2024-12-14 18:08:09

欧拉项目004:寻找最大的回文数的相关文章

C语言-郝斌笔记-004判断是否为回文数

判断是否为回文数 1 # include <stdio.h> 2 3 int main(void) 4 { 5 int val; //存放待判断的数字 6 int m; 7 int sum = 0; 8 9 printf("请输入您需要判断的数字: "); 10 scanf("%d", &val); 11 12 m = val; 13 while (m) 14 { 15 sum = sum * 10 + m%10; 16 m /= 10; 17

leetcode------564. 寻找最近的回文数

class Solution: def nearestPalindromic(self, n): """ :type n: str :rtype: str """ b=list(n) c=list(n) e=list(n) l=len(n) if (l%2==0): mid=l//2 else: mid=l//2+1 if (int(n)<=10): return (str(int(n)-1)) if n=='11': return ('9

欧拉项目005:最小公倍数

Smallest multiple Problem 5 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? 就是找出1....20 所有数的最

006:欧拉项目平方和与和的平方的差

Sum square difference Problem 6 The sum of the squares of the first ten natural numbers is, 12 + 22 + ... + 102 = 385 The square of the sum of the first ten natural numbers is, (1 + 2 + ... + 10)2 = 552 = 3025 Hence the difference between the sum of

欧拉项目007:第10001个素数

10001st prime Problem 7 By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. What is the 10 001st prime number? 使用埃拉托斯特尼筛法,不懂得自行Wiki 我的python代码: # -*- coding:utf-8 -*- #使用埃拉托斯尼特晒法 #从2开始 import math def

寻找回文数的python的实现

寻找回文数 寻找回文数也是一个比较好玩的题目,也是学习python的一个简单的filter()函数的应用 解决方法:即按照回文数的特点进行即可. 方法一:一行代码解决 #coding=UTF-8 #寻找回文数 def is_palindrome(n): s=str(n) return s[0:len(s)//2]==s[-1:len(s)//2:-1] #return str(n)==str(n)[::-1] #测试 for i in filter(is_palindrome,range(100

如何寻找最长回文子串

回文串是面试常常遇到的问题(虽然问题本身没啥意义),本文就告诉你回文串问题的核心思想是什么. 首先,明确一下什:回文串就是正着读和反着读都一样的字符串. 比如说字符串 aba 和 abba 都是回文串,因为它们对称,反过来还是和本身一样.反之,字符串 abac 就不是回文串. 可以看到回文串的的长度可能是奇数,也可能是偶数,这就添加了回文串问题的难度,解决该类问题的核心是双指针.下面就通过一道最长回文子串的问题来具体理解一下回文串问题: string longestPalindrome(stri

洛谷P1207 [USACO1.2]双重回文数 Dual Palindromes

P1207 [USACO1.2]双重回文数 Dual Palindromes 291通过 462提交 题目提供者该用户不存在 标签USACO 难度普及- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做“回文数”.例如,12321就是一个回文数,而77778就不是.当然,回文数的首和尾都应是非零的,因此0220就不是回文数. 事实上,有一些数(如21),在十进制时不是回文数,但在其它进制(如二进制时为10101)时就是回文数. 编

回文数系列题目(经典算法)

回文数 时间限制:1000 ms  |  内存限制:65535 KB 难度:0 描述 请寻找并输出1至1000000之间的数m,它满足m.m^2和m^3均为回文数.回文数大家都知道吧,就是各位数字左右对称的整数,例如121.676.123321等.满足上述条件的数如m=11,m^2=121,m^3=1331皆为回文数. 输入 没有输入 输出 输出1至1000000之间满足要求的全部回文数,每两个数之间用空格隔开,每行输出五个数 解析:这道题直接模拟就好了,算是回文数中最简单的题了,直接写个判断回