codeforces 735d Taxes

来源:互联网 发布:淘宝买白酒靠谱吗 编辑:程序博客网 时间:2024/06/06 08:24

题意

将n拆成k个数(k可以为1),使得每个拆分后的数的最大因子相加最小。

思路

数学结论,哥德巴赫猜想。分成自身为质数,大于2的偶数,大于2的奇数,需要注意奇数中拆分出2的情况。

代码

#include <stdio.h>#include <string.h>#include <math.h>int judge(int a){    int flag = 1;    for(int i = 2;i <= (int)sqrt(a);i ++){        if(a%i == 0){            flag = 0;break;        }    }    return flag;}int main(){    int n;    scanf("%d",&n);    if(n == 2) printf("1\n");    else{        if(n%2){            if(judge(n)) printf("1\n");            else if(judge(n - 2)) printf("2\n");            else printf("3\n");        }        else printf("2\n");    }    return 0;}
0 0
原创粉丝点击