zoukankan      html  css  js  c++  java
  • 循环-04. 验证“哥德巴赫猜想”

    循环-04. 验证“哥德巴赫猜想”(20)

    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    徐镜春(浙江大学)

    数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。

    输入格式:

    输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。

    输出格式:

    在一行中按照格式“N = p + q”输出N的素数分解,其中p <= q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。

    输入样例:
    24
    
    输出样例:
    24 = 5 + 19
     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<math.h>
     4 int IsPrime(int x);
     5 int main()
     6 {
     7     int n;
     8     scanf("%d", &n);
     9     int j;
    10     for(j = 2; j <= n; j++)
    11     {
    12         if(IsPrime(j) && IsPrime(n - j))
    13         {
    14             printf("%d = %d + %d
    ", n, j, n - j);
    15             break;
    16         }
    17     }
    18     return 0;
    19 }
    20 
    21 int IsPrime(int x)
    22 {
    23     int i, flag = 1;
    24     if((x == 1) || (x%2 == 0) && (x != 2))
    25        flag = 0;
    26     else
    27     {
    28         int m = sqrt(x);
    29         for(i = 2; i <= m; i++)
    30         {
    31             if(x % i == 0)
    32             {
    33                 flag = 0;
    34                 break;
    35             }
    36         }
    37     }
    38     return flag;
    39 }
  • 相关阅读:
    HDU 2236 无题Ⅱ
    Golden Tiger Claw(二分图)
    HDU 5969 最大的位或 (思维,贪心)
    HDU 3686 Traffic Real Time Query System (图论)
    SCOI 2016 萌萌哒
    Spring Boot支持控制台Banner定制
    构建第一个Spring Boot程序
    Spring Boot重要模块
    Java fastjson JSON和String互相转换
    BCompare 4 Windows激活方法【试用期30天重置】
  • 原文地址:https://www.cnblogs.com/yomman/p/4220038.html
Copyright © 2011-2022 走看看