排位赛(五)| B题

【题目描述】

  给定一个质数 n,问能否写成两个质数 a, b 的和,即 n = a + b, a, b, n均为质数;

【输入格式】

  输入包括一个整数n (2  <= n <= 1e7);

【输出格式】

  如果不存在这样的整数n, 输出 -1;

  如果存在,输出a,b,以空格间隔开;

【解题思路】

  (1)只存在2一个偶数质数;

  (2)奇数 = 奇数 + 偶数:故a,b中必有一个为2,故只要(n - 2)为质数即输出 a,b;

  (3)由于n - 2的存在,对n == 2 和 n == 3 进行特判;

【正确代码】

复制代码
 1 #include <iostream> 
 2 
 3 using namespace std;
 4 
 5 int is_prime(int x)
 6 {
 7     int prime = 1;
 8     for (int i = 2; i <= x / 2; i ++)
 9         if(x % i == 0)
10         {
11             prime = 0;
12             break;
13         }
14     return prime;
15 }
16 
17 int main()
18 {
19     int n;
20     scanf("%d", &n);
21     
22     if(n == 2) puts("-1");
23     else if(n == 3) puts("-1");
24     else
25     {
26         if(is_prime(n - 2)) printf("%d %d", 2, n - 2);
27         else printf("-1");
28     }
29     
30     return 0;
31 }
复制代码
posted @   小菜珠的成长之路  阅读(37)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示