题解 | 1=N
1=N
https://www.nowcoder.com/practice/31469f8503c24914acd5c0290ad4dfbb
#include<stdio.h>
int main(){
int found=0;
int sum=0;
int N;
scanf("%d",&N);
for(int i=2;i<N;i++){
while(N%i==0){
sum=sum+i;
N=N/i;
found=1;
}
}
if(found==0){
printf("%d",N);
return 0;
}else{
if(N==1){
printf("%d",sum);
}else{
printf("%d",sum+N);
}
}
}
思路:当我们理解题意后,你可以想到什么时候,这个sum能最小,像例题 12,12能分为2 2 3 or 4 3 or 1 12 or 2 6--》能理解出什么?显然就是要联想到 a=b*c,当a>4且a不为质数时:c+b<a!!这就是这道题的关键