Project Euler 1-5题
来源:互联网 发布:mac safari总是崩溃 编辑:程序博客网 时间:2024/05/04 02:47
第1题
题目来源ProjectEuler
这个题求的是严格小于1000的数中,是3或5的倍数的数的和。(刚开始理解错below的意思了,把1000算进去了,尴尬)
int main(){ int ans=0; for (int i=1;i<1000;i++){ if (i%3==0||i%5==0){ ans+=i; } } cout<<ans<<endl; return 0;}
第2题
题目来源ProjectEuler
这个题是求斐波那契数列中所有小于4000000的值为偶数的项的和。所以暴力扫一遍就好了,如果要计算复杂度,可以将斐波那契看成一个
但是实现的时候,我利用了f&1==0来判断偶数,然而在C++里==的优先级高于&,结果就变成了恒假的判定条件了,输出为0,后来给加上了括号就好了。我以前居然没被这个坑到过?
运算符优先级详情请参考cppreference
int main(){ int f0=1,f1=1,f=1; long long ans=0; while(f<=4000000){ if((f&1)==0) ans+=f; f0=f1;f1=f; f=f1+f0; } cout<<ans<<endl; return 0;}
第3题
题目来源ProjectEuler
这个题是求600851475143的最大质因子。
复杂度
我们从枚举2到
利用反证法:
假设当前枚举到的合数
所以容易得到
又因为我们去掉原数的所有小于
所以若
那么我们记录过程中的最大质因子
int main(){ long long num=600851475143ll; long long ans; for (int i=2;i*i<=num;i++){ if (num%i==0) ans=i; while(num%i==0) num/=i; } cout<<max(num,ans)<<endl; return 0;}
第4题
题目来源ProjectEuler
这个题是求所有的三位数的乘积中的最大回文数。
所以什么都不用管,直接
枚举所有三位数的乘积,记录最大的回文数。
bool check(int x){ int s[10],cnt=-1; while(x){ ++cnt; s[cnt]=x%10; x/=10; } for (int i=1;i<=cnt;i++){ if (s[i]!=s[cnt-i]) return false; } return true;}int main(){ int ans=0; for (int i=999;i>=100;i--){ for (int j=999;j>=100;j--){ if (check(i*j)){ ans=max(ans,i*j); } } } cout<<ans<<endl; return 0;}
第5题
题目来源ProjectEuler
这题是求最小的一个数
换一个角度思考,
我们令
其中
所以
这样结论就出来了,只要将1至20每个数分解质因数,记录
当然求每个质数在[1,20]之间最大幂,最后都乘进ans也是可以的。
int occ[25][25];int main(){ int n=20; for (int i=2;i<=n;i++){ for (int tmp=i,j=2;j<=i;j++){ while(tmp%j==0){ occ[i][j]++; tmp/=j; } occ[0][j]=max(occ[0][j],occ[i][j]); } } long long ans=1; for (int i=2;i<=n;i++){ while(occ[0][i]--){ ans*=i; } } cout<<ans<<endl; return 0;}
- Project Euler 1-5题
- Project Euler 1~5
- 【Project Euler】5 第五题
- 【Project Euler】1 第一题
- project euler第一题
- Project Euler第二题
- project Euler第三题
- project Euler第四题
- project Euler第五题
- project Euler第六题
- project Euler第七题
- project Euler第八题
- project Euler第十题
- project Euler第九题
- Project Euler - Problem 5
- Project Euler-5
- Project Euler problem 5
- Project Euler 5
- Java泛型之泛型限定
- Intent之打电话
- Cannot forward after response has beencommitted问题分析及解决
- 【强连通分量】POJ1236Network of Schools
- 基于IP配置Nginx的访问权限-
- Project Euler 1-5题
- php标记的风格
- HDU6198 number number number
- IOS编译报错-The file “XXX.app” couldn’t be opened because you don’t have permission to view it.
- bzoj 3993: [SDOI2015]星际战争
- Tomcat启动问题
- 洛谷P1091合唱队形
- 关于js中++的小问题
- java 多线程下载