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;
    


  • 相关阅读:
    cocos2dx遇到的一些坑
    cocos2dx场景切换的坑
    整合quickx到普通cocos2dx
    Hadoop、spark
    Redis高级特性及应用场景
    wpf相关好资源
    MVVM模式的几个开源框架
    ASP.NET的IIS映射
    NET 开发者必备的工具箱
    C#开源汇总
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7069791.html
Copyright © 2011-2022 走看看