您的位置:首页 > 其它

【质因子分解】NOI 21:最大质因子序列

2018-04-04 18:11 766 查看

21:最大质因子序列     点击打开链接

总时间限制: 1000ms 内存限制: 65536kB描述任意输入两个正整数m, n (1 < m < n <= 5000),依次输出m到n之间每个数的最大质因子(包括m和n;如果某个数本身是质数,则输出这个数自身)。
输入一行,包含两个正整数m和n,其间以单个空格间隔。输出一行,每个整数的最大质因子,以逗号间隔。样例输入
5 10
样例输出
5,3,7,2,3,5
来源元培-From Whf
题型/思路     简单质因子求解的应用。
AC代码

#include <iostream>
#include<cstring>
using namespace std;
const int nmax=5000+10;
int a[nmax];//存放每个数的质因数序列
int b[nmax];//存放m~n这些数的最大质因数的序列

int cal(int n){
int len=0;
for(int i=2;i<=n;i++){
if(n%i==0){
len++;
a[len]=i;
}
while(n%i==0){
n=n/i;
}
}
//返回最大的质因数
return a[len];
}
int main(int argc, char** argv) {
int m,n;
cin>>m>>n;
memset(a,0,sizeof(a));
for(int i=0;i<n-m;i++){
b[i]=cal(i+m);
cout<<b[i]<<",";
}
cout<<cal(n)<<endl;
return 0;
}


b888
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: