Project Euler 43 Sub-string divisibility
题意:
1406357289是一个0至9全数字数,因为它由0到9这十个数字排列而成;但除此之外,它还有一个有趣的性质:子串的可整除性。记d1是它的第一个数字,d2是第二个数字,依此类推,我们注意到:
- d2d3d4=406能被2整除
- d3d4d5=063能被3整除
- d4d5d6=635能被5整除
- d5d6d7=357能被7整除
- d6d7d8=572能被11整除
- d7d8d9=728能被13整除
- d8d9d10=289能被17整除
找出所有满足同样性质数,并求它们的和。
/*************************************************************************
    > File Name: euler043.c
    > Author:    WArobot
    > Blog:      http://www.cnblogs.com/WArobot/
    > Created Time: 2017年06月27日 星期二 10时36分23秒
 ************************************************************************/
#include <stdio.h>
#include <inttypes.h>
#include <algorithm>
bool IsSubStringDivisibility (int32_t *num) {
	int32_t p[7] = { 2 , 3 , 5 , 7 , 11 , 13 , 17 };
	int32_t tmp = 0;
	for (int32_t i = 1 ; i < 8 ; i++) {
		tmp = num[i] * 100 + num[i + 1] * 10 + num[i + 2];
		if (tmp % p[i -1])	return false;
	}
	return true;
}
int32_t main() {
	int32_t num[10];
	int64_t sum = 0 , tmp;
	for (int32_t i = 0 ; i < 10 ; i++)	num[i] = i;
	do {
		if (IsSubStringDivisibility(num)) {
			tmp = 0;
			for(int32_t i = 0 ; i < 10 ; i++){
				tmp = tmp * 10 + (int64_t)num[i];
			}
			sum += tmp;
		}
	}while (std::next_permutation(num , num + 10));
	printf("%"PRId64"\n",sum);
	return 0;
}Project Euler 43 Sub-string divisibility的更多相关文章
- Python练习题 039:Project Euler 011:网格中4个数字的最大乘积
		本题来自 Project Euler 第11题:https://projecteuler.net/problem=11 # Project Euler: Problem 10: Largest pro ... 
- [project euler] program 4
		上一次接触 project euler 还是2011年的事情,做了前三道题,后来被第四题卡住了,前面几题的代码也没有保留下来. 今天试着暴力破解了一下,代码如下: (我大概是第 172,719 个解出 ... 
- Python练习题 029:Project Euler 001:3和5的倍数
		开始做 Project Euler 的练习题.网站上总共有565题,真是个大题库啊! # Project Euler, Problem 1: Multiples of 3 and 5 # If we ... 
- Project Euler 9
		题意:三个正整数a + b + c = 1000,a*a + b*b = c*c.求a*b*c. 解法:可以暴力枚举,但是也有数学方法. 首先,a,b,c中肯定有至少一个为偶数,否则和不可能为以上两个 ... 
- Project Euler 44: Find the smallest pair of pentagonal numbers whose sum and difference is pentagonal.
		In Problem 42 we dealt with triangular problems, in Problem 44 of Project Euler we deal with pentago ... 
- project euler 169
		project euler 169 题目链接:https://projecteuler.net/problem=169 参考题解:http://tieba.baidu.com/p/2738022069 ... 
- 【Project Euler 8】Largest product in a series
		题目要求是: The four adjacent digits in the 1000-digit number that have the greatest product are 9 × 9 × ... 
- Project Euler 第一题效率分析
		Project Euler: 欧拉计划是一系列挑战数学或者计算机编程问题,解决这些问题需要的不仅仅是数学功底. 启动这一项目的目的在于,为乐于探索的人提供一个钻研其他领域并且学习新知识的平台,将这一平 ... 
- Python练习题 049:Project Euler 022:姓名分值
		本题来自 Project Euler 第22题:https://projecteuler.net/problem=22 ''' Project Euler: Problem 22: Names sco ... 
随机推荐
- [MySQL]--查询性能分析工具-explain关键字
			explain显示了MySQL如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. explain的使用方法很简单,只需要在select查询语句前面加上expl ... 
- 0709关于mysql优化思路【何登成】
			转自 http://isky000.com/database/mysql-performance-tuning-sql 优化目标 减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所 ... 
- Mysql查询缓存研究
			转载声明:本文为DBA+社群原创文章,转载必须连同本订阅号二维码全文转载,并注明作者名字及来源:DBA+社群(dbaplus). http://mp.weixin.qq.com/s?__biz=MzI ... 
- Android获取设备屏幕宽高像素值的两个方法
			private void get1() { Resources resources = this.getResources(); DisplayMetrics dm = resources.getDi ... 
- 【概率证明】—— sum and product rules of probability
			1. sum and product rules of probability ⎧⎩⎨p(x)=∫p(x,y)dyp(x,y)=p(x|y)p(y) sum rule of probability 的 ... 
- 6.11Realm简介
			CasRealm 统一认证授权中心 跟单点登录有关的.IniRealm 静态文件 
- jdk5可变参数列表
			今天碰到了 public static String getAutoRelateRelationship(final JSONObject modifyJson, String... inUsedCo ... 
- 关于ssh加密方式的理解
			最近公司服务器被挖矿,所以更换了ssh的连接方式,从之前的密码登陆更换为密钥登陆方式,且禁止了密码登陆.所以在配置这个密钥的过程中,顺带了解了些ssh的原理和相关知识.通用的开源 1.ssh是什么,为 ... 
- 以SqlHelper为例论面向对象中封装的使用(续)
			上文以SqlHelper为例说明了面向对象中封装的好处,但是上文只是简单封装,考虑下面代码的情况: public static Activate GetByCode(string code) { Li ... 
- 用命令行在本地创建一个库并上传到Github
			1 如何在本地创建一个仓库并上传到github? 基本步骤: $ mkdir blog //在桌面上创建一个叫"blog"的目录 $ cd blog //"cd blo ... 
