题目
最大质因子序列
题目描述
任意输入两个正整数m,n(1<m<n≤5000),依次输出m到n之间每个数的最大质因子(包括m和n;如果某个数本身是质数,则输出这个数自身)。
输入格式
一行,包含两个正整数m和n,其间以单个空格间隔。
输出格式
一行,每个整数的最大质因子,以逗号间隔。
样例
输入样例
5 10
输出样例
5,3,7,2,3,5
代码:
#include <iostream>
#include <cmath>
using namespace std;
int isprime(int x)
{
for(int i=2;i<=sqrt(x);i++)
if(x%i==0) return 0;
return 1;
}
int fn(int x)
{
int t=x;
for(int i=x-1;i>1;i--)
{
if(x%i==0&&isprime(i))
{
t=i;
break;
}
}
return t;
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=n;i<=m;i++)
{
if(i!=m)
cout<<fn(i)<<",";
else
cout<<fn(i);
}
}