• 【CF735D】Taxes【数论,数学】


    题目大意:

    题目链接:https://www.luogu.org/problemnew/show/CF735D
    某人要交税,交的税钱是收入nn的最大因子(除了nn本身)。但是现在这人为了避税,把钱拆成几份,使交税最少,输出税钱。


    思路:

    当时看到是黑题,但是一翻讨论发现有人说是恶意评分,所以就想了一下。
    结果发现很简单。
    先分类讨论。

    • n=1n=1时,答案显然为1。
    • nn是质数时,答案显然为1。
    • nn是除了2以外的偶数时,根据哥德巴赫猜想,可以拆分成两个质数,答案为2。
    • nn是除了质数以外的奇数时,只有(n2)+2(n-2)+2才有可能是两个质数,所以如果n2n-2是质数,那么答案就是2,否则可以拆分成(n3)+3(n-3)+3,其中n3n-3是偶数,3是质数,所以答案为3。

    还是很简单的。


    代码:

    #include <cstdio>
    using namespace std;
    
    int n;
    
    bool isprime(int x)  //O(sqrt(n))判断质数
    {
    	for (int i=2;i*i<=x;i++)
    		if (!(x%i)) return 0;
    	return 1;
    }
    
    int main()
    {
    	scanf("%d",&n);
    	if (n==1||isprime(n)) return !printf("1");
    	if ((!(n&1))||isprime(n-2)) return !printf("2");
    	return !printf("3");
    } 
    
  • 相关阅读:
    关于数据集的划分--训练集、验证集和测试集
    关于过拟合的问题总结
    paddle 09-13
    关于NLP多分类任务评价指标的总结
    数组题解
    多进程-协程
    多任务-进程
    多任务-线程
    网络-tcp
    网络-udp
  • 原文地址:https://www.cnblogs.com/hello-tomorrow/p/11998300.html
Copyright © 2020-2023  润新知