• C语言题目2


    题目描述

    任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对

    输入描述:

    输入一个偶数

    输出描述:

    输出两个素数

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    int sushu(int a);
    
    int main()
    {
        int oushu = 0;
        while (scanf("%d", &oushu) != 0)
        {
            //要考虑到比如26 -> 13 +13 的情况 所以从0开始循环
            for (int i = 0; i < oushu; i = i + 1)
            {
                //拆分成两个数 一个xiao 一个da 加起来是oushu本身
                int xiao = oushu / 2 - i;
                int da = oushu - xiao;
                if (sushu(xiao) == 1 && sushu(da) == 1)
                {
                    printf("%d
    %d", xiao, da);
                    break;
                }
            }
        }
        return 0;
    }
    
    int sushu(int a)
    {
        //标志位,当flg等于0时代表不是素数(质数)
        int flg = 1;
        for (int i = 2; i < a; i++)
        {
            if (a%i == 0)
            {
                flg = 0;
                break;
            }
        }
        return flg;
    }

    注意考虑一个偶数直接拆分成两个质数的特殊情况


  • 相关阅读:
    数据结构做题一些总结
    ExecuteNoQuery执行, 报错“go”附近有语法错误。
    EF总结
    哨兵模式
    Redis 发布订阅
    Redis 持久化
    Redis 事务 和乐观锁
    缓存穿透和雪崩
    Redis 基础知识
    Redis 三种特殊的数据类型
  • 原文地址:https://www.cnblogs.com/qifeng1024/p/11867749.html
Copyright © 2020-2023  润新知