zoukankan      html  css  js  c++  java
  • SCUT

    https://scut.online/p/173

    给一个大于1的整数n,对它进行分拆,不可以拆出1,拆出的每个数贡献它的最大的除了它自己以外的因子,最小化这个贡献的和。

    大胆猜测是要分解出一些质数使得大家都是1。

    本身是2的就直接输出1就可以了。

    根据哥德巴赫猜想,大于2的偶数直接输出2就可以了。

    假如是质数,直接输出1就可以了。

    剩下的都是奇合数了,奇合数至少是9,奇合数都可以拆一个3出来变成偶数,然后哥德巴赫猜想直接得到答案是3。

    除了最后一种情况,就是奇合数拆一个2出来变成奇质数,比如9。

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    
    int d[13], f[13];
    
    int main() {
    #ifdef Yinku
        freopen("Yinku.in", "r", stdin);
    #endif // Yinku
        int T;
        scanf("%d", &T);
        while(T--) {
            int n;
            scanf("%d", &n);
            if(n == 2) {
                puts("1");
                continue;
            }
            if(n % 2 == 0) {
                puts("2");
                continue;
            }
            bool prime = true;
            for(int d = 2; d * d <= n; ++d) {
                if(n % d == 0) {
                    prime = false;
                    break;
                }
            }
            if(prime) {
                puts("1");
                continue;
            }
            n -= 2;
            prime = true;
            for(int d = 2; d * d <= n; ++d) {
                if(n % d == 0) {
                    prime = false;
                    break;
                }
            }
            if(prime) {
                puts("2");
                continue;
            }
            puts("3");
        }
    }
    
  • 相关阅读:
    选择排序
    插入排序
    洗牌算法
    访问性模式
    策略模式
    mysql EXPLAIN Join Types 手册解释 及数据实操
    Nginx Location和Rewrite总结
    json_decode 解析带BOM头文件错误
    laravel 集成 swagger插件
    php S3
  • 原文地址:https://www.cnblogs.com/Inko/p/11515614.html
Copyright © 2011-2022 走看看