`

(Problem 37)Truncatable primes

阅读更多

The number 3797 has an interesting property. Being prime itself, it is possible to continuously remove digits from left to right, and remain prime at each stage: 3797, 797, 97, and 7. Similarly we can work from right to left: 3797, 379, 37, and 3.

Find the sum of the only eleven primes that are both truncatable from left to right and right to left.

NOTE: 2, 3, 5, and 7 are not considered to be truncatable primes.

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
#include<stdbool.h>

bool isprim(int n)
{
    int i=2;
    if(n==1) return false;
    for(; i*i<=n; i++)
    {
        if(n%i==0)  return false;
    }
    return true;
}

bool truncatable_prime(int n)
{
    int i,j,t,flag=1;
    char s[6];
    int sum=0;
    sprintf(s,"%d",n);
    int len=strlen(s);

    if(!isprim(s[0]-'0') || !isprim(s[len-1]-'0')) return false;

    for(i=1; i<len-1; i++)
    {
        t=s[i]-'0';
        if(t==0 || t==2 || t==4 || t==6 || t==5 || t==8)  return false;
    }
    
    for(i=1; i<len-1; i++)
    {
        for(j=i; j<len-1; j++)
        {
            sum+=s[j]-'0';
            sum*=10;
        }
        sum+=s[j]-'0';
        if(!isprim(sum))  return false;
        sum=0;
    }
    j=len-1;
    i=0;
    while(j>i)
    {
        for(i=0; i<j; i++)
        {
            sum+=s[i]-'0';
            sum*=10;
        }
        sum+=s[i]-'0';
        if(!isprim(sum)) return false;
        sum=0;
        i=0;
        j--;
    }
    return true;
}

int main()
{
    int sum,count;
    sum=count=0;
    int i=13;
    while(1)
    {
        if(isprim(i) && truncatable_prime(i))
        {
            count++;
            sum+=i;
            //printf("%d\n",i);
        }
        i=i+2;
        if(count==11)  break;
    }
    printf("%d\n",sum);
    return 0;
}

 

Answer:
748317
分享到:
评论

相关推荐

    PRIMES is in P

    素数的判定问题(Primality Testing Problem)一直是计算机科学和数学领域中的一个重要课题,尤其是在密码学中,大量的加密协议都需要用到大素数。传统的素数判定方法是基于试除法或埃拉托斯特尼筛法,这些方法的...

    matlab开发-Primes

    在MATLAB环境中,"Primes"项目显然与数学中的素数生成有关,特别是利用Simulink进行系统级的实现。Simulink是MATLAB的一个扩展工具箱,它提供了一个图形化用户界面,用于构建、仿真和分析多域动态系统。在本项目中,...

    [素性检测]PRIMES is in P,作者:Manindra Agrawal, Neeraj Kayal, and Nitin Saxena

    **标题与描述解析:**“[素性检测]PRIMES is in P”这篇论文由Manindra Agrawal, Neeraj Kayal, 和 Nitin Saxena三位作者共同完成。该论文的重要贡献在于提出了一种确定性的多项式时间算法来判断一个输入数字是否为...

    primes_100亿.txt.zip

    标题中的"primes_100亿.txt.zip"是一个压缩文件,其中包含了100亿以内的所有素数。这个文件很可能是一个纯文本文件(.txt),被压缩以节省存储空间,便于传输和管理。"zip"是常见的文件压缩格式,它通过数据压缩算法...

    The Little Book of Bigger Primes, 2nd Edition, Paulo Ribenboim.pdf

    《The Little Book of Bigger Primes, 2nd Edition》是由Paulo Ribenboim撰写的一本关于素数的数学专著。素数作为数学中的基础概念,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。这本书属于数学...

    primes.c

    primes.c

    PyPI 官网下载 | find_primes-1.1.1.post4.tar.gz

    《PyPI官网下载 | find_primes-1.1.1.post4.tar.gz——探索Python中的素数计算库》 PyPI(Python Package Index)是Python开发者的重要资源库,它为全球的Python用户提供了丰富的第三方库,便于他们进行各种功能的...

    primes.all.txt

    第十三届蓝桥杯大赛软件赛决赛,试题: 小蓝做实验,题目数据 primes.txt

    The Little Book of Bigger Primes, 2nd Edition, Paulo Ribenboim.djvu

    中文版见:数学名著译丛 博大精深的素数__(加)P._里本伯姆著;孙淑玲,冯克勤译.pdf

    java-leetcode题解之Count Primes.java

    该平台的题目覆盖了从基础到高级多个层次,其中“Count Primes”是其中的一道常见题目。该问题主要是要求编程者编写一个算法,用以计算小于给定数值N的质数的数量。质数是只能被1和它本身整除的大于1的自然数。 ...

    primes:PRIMES 游戏

    【标题】"PRIMES游戏"是一个基于素数概念的在线游戏,它的设计灵感来源于素数这个数学领域的基本概念。素数是大于1且仅能被1和它本身整除的自然数,如2、3、5、7、11等。在这款游戏中,玩家可能需要通过各种方式识别...

    C++-leetcode题解之204-Count-Primes.cpp

    标题"C++-leetcode题解之204-Count-Primes.cpp"指向了本文的主要内容,即一个针对LeetCode在线编程平台的204题的C++编程语言解答。这道题目名为"Count Primes",即统计质数的个数,是算法和数据结构领域中一个非常...

    There are infinitely many primes of the form a^2 +1

    文章标题为“存在无穷多个形式为a^2+1的素数”,这篇论文由刘逢绥撰写,旨在证明形式为a^2+1的二项式中存在无穷多个素数,并将这一结果推广到一般多项式的情况中。 首先,我们需要了解什么是素数。...

    Primes-applet.zip_visual c

    本篇文章将深入探讨一个使用C语言编写的素数判定小程序,该程序封装在一个名为"Primes applet"的文档中,是Visual C环境下的一个应用实例。 素数是大于1的自然数,它除了1和它自身外,不能被其他自然数整除。这个...

    Primes.jl:Julia中的素数

    标题"Primes.jl:Julia中的素数"表明这是一个关于Julia编程语言的库,专门用于处理素数相关的计算。它可能是实现了一系列算法和功能,帮助用户在Julia环境中高效地查找、验证和操作素数。 描述同样简洁,"Primes.jl...

    java-leetcode题解之204-Count-Primes

    计数质数(Count Primes)进行详细的 Java 题解。 首先,我们要了解质数的定义:质数是大于 1 的自然数,且除了 1 和其本身外,无法被其他自然数整除的数。举例来说,2、3、5、7、11 都是质数。而 4、6、8、9、10 ...

    primes:素数计算工具包

    这是素数列表(请注意,1 不被视为素数): 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, ...

    primes:将前 100 个素数写入文件的小 node.js 脚本

    素数 将前 100 个素数写入文件的小 node.js 脚本 可能不是最好的算法,因为我没有使用 Atkin 的筛子或 Eratosthenes 的筛子,但它可能更糟 :-) 用法 执行node primes.js 创建的文件名为primes.txt

    python-leetcode题解之204-Count-Primes.py

    在编写关于“204-Count-Primes”这个题目的题解时,我们首先需要了解题目本身的内容。该题目是来自著名的在线编程题目库leetcode,题目要求实现一个函数来计算小于给定整数n的所有质数(prime numbers)的数量。质数...

Global site tag (gtag.js) - Google Analytics