题目B2138 最大质因子序列
众所周知,这是一道水题
话不多说,先理解题目意思
上链接!https://www.luogu.com.cn/problem/B2138
这道题是什么意思呢?想必大家都已经知道了
额,当我没说……
好吧@管理员,请容我多说几句
#include<cstdio>
int ans;
void f(int a,int k){
//a表示当前这个数,k表示除数
if(a%k==0){//能被整除
if(a/k==1) {
//如果整除后得1,则记录答案,不用继续分解
ans=k;
return;
}
f(a/k,k);//整除
}else{
f(a,k+1);//尝试下一个数
}
}
int main(){
int n,m;
scanf("%d%d",&n,&m);//输入
while(n<=m){
f(n,2);//调用函数
printf("%d",ans);//输出答案
if(n!=m) printf(",");//特判是否需要逗号
n++;
}
return 0;
}
这是带注释版
我知道大家都不喜欢看注释,那么~
#include<cstdio>
int ans;
void f(int a,int k){
if(a%k==0){
if(a/k==1) {
ans=k;
return;
}
f(a%k,k);
}else{
f(a,k+1);
}
}
int main(){
int n,m;
scanf("%d%d",&n,&m);
while(n<=m){
f(n,2);
printf("%d",ans);
if(n!=m) printf(" ");
n+=1;
}
return 0;
}