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