zoukankan      html  css  js  c++  java
  • Project Euler: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 <iostream>
    #include <string>
    using namespace std;
    
    bool prim(int a)
    {
    	if (a == 1)
    		return false;
    	for (int i = 2; i*i <= a; i++)
    	{
    		if (a%i == 0)
    			return false;
    	}
    	return true;
    }
    
    bool tr_prim(int a)
    {
    	int num = a;
    	int count = 0;
    	int tmp[10] = { 0 };
    	while (a)
    	{
    		if (!prim(a))
    			return false;
    		count++;
    		tmp[count] = a % 10;
    		a /= 10;
    	}
    	for (int i = count; i > 1; i--)
    	{
    		num = num - tmp[i] * pow(10, i - 1);
    		if (!prim(num))
    			return false;
    	}
    	return true;
    }
    
    
    int main()
    {
    	
    	int sum = 0;
    	for (int i = 10; i <= 1000000; i++)
    	{
    		if (tr_prim(i))
    		{
    			//cout << i << endl;
    			sum += i;
    		}
    	}
    	cout << sum << endl;
    	system("pause");
    	return 0;
    


  • 相关阅读:
    python中的字典
    python中的元组操作
    python中的列表
    python中的内建函数
    python中格式化字符串
    34 哈夫曼编码
    33 构造哈夫曼树
    32 哈夫曼树
    31 树和森林的遍历
    30 森林和二叉树的转化(二叉树与多棵树之间的关系)
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7069791.html
Copyright © 2011-2022 走看看