1.最大质因数
13195的质因数包括5、7、13和29。
600851475143的最大质因数是多少?
另外,通过这个题,我还学会了一个求质数的更简便的方法
int pnum(int n)
{
for(int i=2;i*i<=n;i++){
if(n&i==0) return 0;
}
return 1;
}
2.最小公倍数
2520是最小的能够被1到10整除的数。
最小的能够被1到20整除的正数是多少
解题思路:2个数中,最小公倍数和最大公约数的乘积是这两个数的乘积。拓展一下范围,那么n个数的最小公倍数应该是这20个数的乘积在除以20个数的最大公约数。先求两个的最大公约数,在用这两个最大公约数与第三个数结合,再求最大公约数
#include <iostream>
using namespace std;
int gcd(int a,int b)
{
if(a%b==0)
return b;
else return gcd(b,a%b);//辗转相除
}
int lcm(int a,int b)
{
return a/gcd(a,b)*b;
}
int main() {
int result=1;
for(int i=2;i<=20;i++)
result=lcm(result,i);
cout<<result;
return 0;
}