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;
    


  • 相关阅读:
    无限级分类表设计
    多表连接
    连接(上接子查询那一篇随笔)
    数据库中常用指令
    子查询
    mysql查询表达式解析
    mysql单表删除记录DELETE
    mysql 单表更新记录UPDATE
    七言
    时分秒计算案例
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7069791.html
Copyright © 2011-2022 走看看