题意:

首次出现连续两个数均有两个不同的质因数是在:

14 = 2 × 7
15 = 3 × 5

首次出现连续三个数均有三个不同的质因数是在:

644 = 22 × 7 × 23
645 = 3 × 5 × 43
646 = 2 × 17 × 19

首次出现连续四个数均有四个不同的质因数时,其中的第一个数是多少?


方法一:普通筛法

/*************************************************************************
> File Name: euler047.c
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年06月30日 星期五 15时21分48秒
************************************************************************/ #include <stdio.h>
#include <inttypes.h> #define MAX_N 1000000 int32_t prime[MAX_N + 10] = {0};
int32_t fac[MAX_N + 10]= {0}; void Init() {
for (int32_t i = 2 ; i < MAX_N ; i ++) {
if (!prime[i]) {
for (int32_t j = i ; j < MAX_N ; j += i) {
prime[j] = i;
fac[j]++;
}
}
}
}
int32_t main() {
Init();
for (int32_t i = 2 ; i < MAX_N ; i++) {
if ((fac[i] > 3) && (fac[i + 1] > 3) && (fac[i + 2] > 3) && (fac[i + 3] > 3)) {
printf("ans = %d\n",i); break;
}
}
return 0;
}

方法二:线性筛

/*************************************************************************
> File Name: euler047t2.c
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年06月30日 星期五 15时45分48秒
************************************************************************/ #include <stdio.h>
#include <inttypes.h> #define MAX_N 1000000 int32_t prime[MAX_N + 10] = {0};
int32_t facNum[MAX_N + 10] = {0}; void Init() {
for (int32_t i = 2 ; i < MAX_N ; i++) {
if (!prime[i]) { prime[ ++prime[0] ] = i; facNum[i] = 1; }
for (int32_t j = 1 ; j <= prime[0] ; j++) {
if (i * prime[j] > MAX_N) break;
prime[i * prime[j]] = 1;
if (i % prime[j] == 0) {
facNum[i * prime[j]] = facNum[i];
break;
} else {
facNum[i * prime[j]] = facNum[i] + 1;
}
}
}
} int32_t main() {
Init();
for (int32_t i = 1 ; i < MAX_N ; i++) {
if (facNum[i] != 4 ) continue;
if (facNum[i] != facNum[i + 1]) continue;
if (facNum[i + 1] != facNum[i + 2]) continue;
if (facNum[i + 2] != facNum[i + 3]) continue;
printf("%d\n",i);
break;
}
return 0;
}

最新文章

  1. 期待中冷静前行,专家预测2017年VR产业5大发展趋势
  2. 判断输入的数是否为数字,不使用isNaN
  3. 2014 Super Training #7 E Calculate the Function --矩阵+线段树
  4. 【poj1804】 Brainman
  5. 消息队列入门(四)ActiveMQ的应用实例
  6. WEB网页插件 如何实现 选择上传图片路径 【高级问题】
  7. Python 描述符(descriptor) 杂记
  8. python的pip和virtualenv使用心得
  9. circle area
  10. java根据图片和文字生成自定义图片
  11. BZOJ 3223 文艺平衡树
  12. 说说Xcode4中xib绑定的原理
  13. Springboot启动源码详解
  14. python--对函数的理解
  15. TLD算法原理2--学习理解之(三)
  16. mysql查询中AND与OR注意事项
  17. 监控网卡流量脚本(Python)
  18. AtCoder Grand Contest 009
  19. λ(lambda)表达式
  20. 关于LP64,ILP64,LLP64,ILP32,LP32字长(数据)模型

热门文章

  1. Solr部分更新MultiValued的Date日期字段时报错及解决方案:Invalid Date String:&#39;Mon Sep 14 01:48:38 CST 2015&#39;
  2. Linux排序命令sort(转)
  3. Spring Boot上传文件
  4. 18110 Koishi&#39;s travel, Satori&#39;s travel
  5. vmware mac 分辨率设置
  6. [Linux]RedHat Linux 忘记rootpassword该怎样又一次设置password
  7. Windows 10彻底关闭自动更新
  8. [CQOI 2007] 涂色
  9. expdp通过dblink远端导出
  10. Java Socket通讯---网络基础