Project Euler__problem 3
来源:互联网 发布:域名怎么和服务器绑定 编辑:程序博客网 时间:2024/06/01 17:47
做到第3题遇到
可以算得上是真正的数学难题
目前我的数学水平有限
看到题目就懵逼了一下,
前面2道题目我都习惯先用笔算算出结果,然后再用计算机去解出答案对照
Largest prime factor
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
最大质因数
13195的所有质因数为5、7、13和29。
600851475143最大的质因数是多少?
但这道貌似数字过大,我数学水平到达不了这个水平
用C++的时间复杂度太大,算法太渣,算不出
我的思路是写一个fun函数找出一个数n的最大因数,再用函数zhishu判断最大因数是否为质数
否则的话继续找出最大因数的最大因数,以此类推找出最大的质因数。
#include<iostream>long long fun(long long n){long long a;for (a = n/2 + 1; a > 1; a--)if (n%a == 0){break;}else continue;return a;}long zhishu(long long n){long long b;for (b = n/2 + 1; b > 1; b--){if (n % b != 0)continue;else break;}if (b == 1)return 1;else return 0;}void main(){long long a = fun(13195);while (!zhishu(a)){a = fun(a);}if(a==1)std::cout <<"该数没有质因数" << std::endl;else std::cout << a << "是最大质因数" << std::endl;system("pause");}
当输入13195可以秒得该数没有质因数
但输入600851475143要等待,我就没有继续等
说到底还是数学不好啊,就一直问同学朋友有什么好方法可以算出来
他有的说用根号n 有的叫我列表
后来想出一个想法,不如找出一个因数就将n除一次
这样就可以实现快速变小,然后马上尝试去写代码
最后成功解决
#include<iostream>long long fun(long long n){long long a;for (a = 2; a < n; a++)if (n%a == 0)break;else continue;return a;}void main(){long long num = 600851475143;long long a = fun(num);while (a != num){num = num / a;a = fun(num);}std::cout << num << "是最大质因数" << std::endl;system("pause");}
得出最后结果是6857
找回在中学时期做出数学题那种快感
阅读全文
1 0
- Project Euler__problem 3
- Project Euler__problem 1
- Project Euler__problem 2
- Project Euler__problem 4
- Project Euler__problem 5
- Project Euler__problem 6
- Project Euler__problem 7
- Project Euler__problem 8
- Project Euler__problem 9
- Project Euler__problem 10
- android project starts 3
- MyQQ project 3
- Week 3: Project Setup
- Project Euler - Problem 3
- Project Euler problem 3
- project euler Problem 3
- Project 3: Sort Poems
- Project Euler 3
- codeforces 587B Duff in Beach (dp)
- 哈希堆的实现
- storm学习(三)
- Leetcode---2.Add Two Numbers
- oracle 数据类型详解---日期型
- Project Euler__problem 3
- UVa 1596 Bug Hunt易错的地方
- 301 (div.2) E. Infinite Inversions
- Sublime Text 3运行JavaScript
- electron安装
- PHP文件上传常见问题
- 设计模式-模板方法模式
- 洛谷 P1637 三元上升子序列(树状数组)
- 生成带图片的DOC