题目描述
任意输入两个正整数m,n(1<m<n≤5000),依次输出m到n之间每个数的最大质因子(包括m和n;如果某个数本身是质数,则输出这个数自身)。
【输入】
一行,包含两个正整数m和n,其间以单个空格间隔。
【输出】
一行,每个整数的最大质因子,以逗号间隔。
样例
【输入样例】
5 10
【输出样例】
5,3,7,2,3,5
这道题函数用来判断质数,看看它是否能被其它数整除,如果能,就退出,如果不能,就记录
C++ 代码
#include<iostream>
using namespace std;
int func(int n)
{
int sum=0;
for(int i=2;i<=n;i++)
{
if(n%i==0 && i>sum)
{
bool flag=true;
for(int j=2;j*j<=i;j++)
{
if(i%j==0)
{
flag=false;
break;
}
}
if(flag) sum=i;
}
}
return sum;
}
int main()
{
int m,n;
cin>>m>>n;
for(int i=m;i<=n;i++)
{
if(i==m) cout<<func(i);
else cout<<","<<func(i);
}
return 0;
}