题解 | 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!!这就是这道题的关键

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务