关闭

[简单题] Project Euler 601 Divisibility streaks

75人阅读 评论(0) 收藏 举报
分类:

(k+1)|(n+k) 就是 (k+1)|(n1)
这个函数就是最大的 k 使得 1,2,,k 都整除n-1吧
随便容斥下咯

#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
typedef long long ll;

inline ll Gcd(ll a,ll b){
  return !b?a:Gcd(b,a%b);
}

inline ll Sum(ll n,ll x){
  n/=x;
  return n*(n+1)/2*x+n;
}
inline ll Cnt(ll n,ll x){
  return n/x;
}


inline int f(int n){
  for (int i=0;;i++)
    if ((n+i)%(i+1)!=0)
      return i;
}
inline int g(int n){
  n--;
  for (int i=1;;i++)
    if (n%i!=0)
      return i-1; 
}

int main(){
  ll Ans=0,ans2=0;
  ll lcm=1,nxt;
  for (int i=1;i<=31;i++){
    ll n=1LL<<(i<<1);
    //for (int j=2;j<n;j++)
    //  if (f(j)==i)
    //ans2++;
    nxt=lcm*(i+1)/Gcd(lcm,i+1);
    Ans+=Cnt(n-2,lcm)-Cnt(n-2,nxt);
    lcm=nxt;
  }
  printf("%lld\n",Ans);
  return 0;
}
0
0
查看评论

ProjectEuler题解(更新到100题)

欧拉项目题解,源代码从Github上下载:https://github.com/cloudzfy/euler Multiples of 3 and 5Even Fibonacci numbersLargest prime factorLargest palindro...
  • cloudzfy1
  • cloudzfy1
  • 2016-12-14 12:10
  • 536

Project Euler 1-5题

第1题 题目来源ProjectEuler这个题求的是严格小于1000的数中,是3或5的倍数的数的和。(刚开始理解错below的意思了,把1000算进去了,尴尬)int main(){ int ans=0; for (int i=1;i<1000;i++){ ...
  • pfccWang
  • pfccWang
  • 2017-09-10 21:25
  • 190

Project Euler一句话题解(此贴持续更新)

好好搞一波数学,从PE第三页开刷101:Lagrange插值多项式 Ans:37076114526
  • MrBird_to_fly
  • MrBird_to_fly
  • 2016-10-20 20:45
  • 305

Project-Euler problem 1-50

最近闲的做了下Project Euler 上的题目,前面50题都比较简单,简单总结下,一下代码一般是Python和C/C++的 用Python 做这些题目简直是酸爽啊 一下代码可能不一定是我的,因为不知道论坛里面的回复不是永久的,所以我的代码有的丢了,可能找个和我的意思相近的代码。题目翻译是从 欧...
  • u011401504
  • u011401504
  • 2015-01-31 00:09
  • 2028

【Project Euler】3 第三题

 //The prime factors of 13195 are 5, 7, 13 and 29.         //What is the largest prime factor of the number 600...
  • NoMasp
  • NoMasp
  • 2015-02-07 12:21
  • 1107

Project Euler 10

本文章来自我的个人网站,如感兴趣,欢迎访问我的个人网站:http://www.qingshuimonk.com/ 今天终于搞完了PE的第十题,说起来这道题做了得有小半个月了。 算法类似于PE的第十题,还是用之前的质数去除,以此来判断是否是质数,所以代码就在第七题的基础上稍稍改动一下就可以了。...
  • michaelxi007
  • michaelxi007
  • 2013-11-17 23:16
  • 786

Project Euler 31-35题

第31题 题目来源ProjectEuler这一题求200可以由1,2,5,10,20,50,100,200以多少种不同的方式相加而成。 将硬币分别标记为f[1]=1;f[2]=2;f[3]=5;f[4]=10;f[5]=20;f[6]=50;f[7]=100];f[8]=200; 使用dp[i...
  • pfccWang
  • pfccWang
  • 2017-09-20 13:02
  • 125

Project Euler Problem 51-70

题目翻译是从 欧拉计划 | Project Euler 中文翻译站上面Copy 的 Problem 51 Prime digit replacements 通过置换*3的第一位得到的9个数中,有六个是质数:13,23,43,53,73和83。 通过用同样的数字...
  • u011401504
  • u011401504
  • 2015-02-08 02:22
  • 1685

ProjectEuler 125

http://projecteuler.net/index.php?section=problems&id=125  Problem 12504 August 2006 The palindromic number 595 is interesting beca...
  • northwolves
  • northwolves
  • 2010-04-30 16:07
  • 1653

Project Euler18题 从上往下邻接和

题目:By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23. 3 7...
  • jiang111_111shan
  • jiang111_111shan
  • 2015-07-16 09:06
  • 803
    个人资料
    • 访问:364256次
    • 积分:13016
    • 等级:
    • 排名:第1238名
    • 原创:975篇
    • 转载:3篇
    • 译文:0篇
    • 评论:56条
    文章分类
    最新评论