预计阅读时间:5分钟
原题
描述
任意输入两个正整数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 find(int s)
{
for(int i=s-1; i>=2; i--)
{
if(s%i==0)
{
int flag=0;
for(int j=2; j<=sqrt(i); j++)
{
if(i%j==0)
{
flag=1;
}
}
if(flag==0)
{
return i;
}
}
}
return s;
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=n; i<=m; i++)
{
if(i==m)
{
cout<<find(i)<<endl;
return 0;
}
cout<<find(i)<<",";
}
return 0;
}
希望本博客对大家有所帮助!