Project Ruler 算法练习之 Truncate Prime

问题描述:

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.

1. 把数字从前向后依次截取

2.把数字从后向前依次截取

3.如果都是素数,返回true

实现:

(function(){

//truncate prime

var isTp = function(n){

var strN = n.toString();

for(var d = 0 ;d < strN.length; d++){
var s = strN.substr(0,d);
var s1 = strN.substr(strN.length-1-d,d+1);

var ns = parseInt(s);
var ns1 = parseInt(s1);
for(var i = 2 ;i < ns; i++){
if(ns%i == 0 ) {return false;}
}

for(var i = 2 ;i < ns1; i++){
if(ns1%i == 0 ) {return false;}
}

}

return true;
}

// find out the element that have 11 primes included all truncated  numbers
for(var i = 10; i< 999999; i++){
if(isTp(i)) {console.log("===============" + i+ "=================");}
}

})();

Project Ruler 算法练习之 Truncate Prime

时间: 2024-10-29 08:05:35

Project Ruler 算法练习之 Truncate Prime的相关文章

Project Ruler 算法练习之除数问题

问题描述: The fraction 49/98 is a curious fraction, as an inexperienced mathematician in attempting to simplify it may incorrectly believe that49/98 = 4/8, which is correct, is obtained by cancelling the 9s. We shall consider fractions like, 30/50 = 3/5,

Project Ruler 算法练习之 10 进制 转 2进制 以及数字对称

问题描述: The decimal number, 585 = 10010010012 (binary), is palindromic in both bases. Find the sum of all numbers, less than one million, which are palindromic in base 10 and base 2. (Please note that the palindromic number, in either base, may not inc

Project Euler:Problem 41 Pandigital prime

We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once. For example, 2143 is a 4-digit pandigital and is also prime. What is the largest n-digit pandigital prime that exists? #include <iostream> #incl

Project Euler:Problem 50 Consecutive prime sum

The prime 41, can be written as the sum of six consecutive primes: 41 = 2 + 3 + 5 + 7 + 11 + 13 This is the longest sum of consecutive primes that adds to a prime below one-hundred. The longest sum of consecutive primes below one-thousand that adds t

基于请求的分布式互斥算法

一个悲剧的文章,研究的东西确实比较老,但是因为这些研究,让我对分布式的底层的关系有了更加清晰的认识,也算是不枉此功. 下面贴出来核心的部分. 引言 分布式系统中的一组进程可能会同时访问一个资源或者同时执行一个给定的函数,我们称这些资源或者函数为临界区(Critical Section),若不加控制的话,会造成资源或者环境的不一致的现象.保证任何给定时刻只允许一个进程或者给定的进程去执行临界区的算法称为互斥算法.互斥也可以称为并发控制. 这个问题最早由Dijkstra[1]在1965年提出.互斥可

并查集(union-find set)与Kruskal算法

并查集 并查集处理的是集合之间的关系,即‘union' , 'find' .在这种数据类型中,N个不同元素被分成若干个组,每组是一个集合,这种集合叫做分离集合.并查集支持查找一个元素所属的集合和两个元素分别所属的集合的合并. 并查集支持以下操作: MAKE(X):建立一个仅有成员X的新集合. UNION(X,Y):将包含X和Y的动态集合合并为一个新集合S,此后该二元素处于同一集合. FIND(X):返回一个包含X的集合. 注意:并查集只能进行合并操作,不能进行分割操作. 并查集的实现原理 并查集

HDU 1233 还是畅通工程【最小生成树入门题,Kruskal算法+Prim算法】

还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 39929    Accepted Submission(s): 18144 Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路

hdoj1233 还是畅通工程(Prime || Kruskal)

题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1233 思路 最小生成树问题,使用Prime算法或者Kruskal算法解决. 代码 Prime算法: 1 #include <algorithm> 2 #include <cstring> 3 #include <cstdio> 4 using namespace std; 5 6 const int INF = 0xfffffff; 7 const int N = 100

ACM学期总结

从大一就开始对这个东西感兴趣,当时其实并不知道ACM是什么,当时学习想法也很简单,就是想用来提高自己的编程能力. 接触ACM已经有了一学期的时间,说时候ACM真的很难学,从一开始的激情满满,到后来的索然无趣.ACM是十分花费时间的东西,平均下来我几乎每道题的的时间差不多就有两个小时,虽然会很打击人信心,但是在某些方面自己的能力确实提高了不少,无论自己在考虑问题,分析问题上,还是对于语言的认识上,考虑的比之前更加全面,分析的比之前更加透彻,ACM便是运用已有的算法,解决更加接近于现实的问题.刷题只