牛客网-2019校招真题-学数学

一、题目

数学老师正在教授小畅和小游两人素数的概念。为了帮助巩固两人的知识,老师说出一个数,要求小游和小畅合作,每人说出一个素数,使得两人说出的素数的和刚好等于老师说出的数。请编写程序计算两人说出的素数对的个数。如,老师说10,小畅和小游可以说出两对素数,分别为(5,5)和(3,7)(不考虑顺序)。

输入描述:

输入包括一个整数n,(3 ≤ n < 1000)

输出描述:

输出符合条件的素数对的个数
示例1

输入

10

输出

2
二、实现
 1  public static void Main(string[] args)
 2         {
 3             int n=Convert.ToInt32( Console.ReadLine());
 4             int i = 2;
 5             int count=0;
 6             for(;i<n;i++)
 7             {
 8                 bool issu1=true;
 9                 int k=2;
10                 for(;k<i;k++)
11                 {
12                     if(i%k==0)
13                     {
14                         issu1=false;
15                     }
16                 }
17                 if(issu1==true)
18                 {
19                     
20                     int j=2;
21                     for(;j<=i;j++)
22                     {
23                        bool issu2=true; 
24                         int m=2;
25                         for(;m<j;m++)
26                         {
27                            if(j%m==0)
28                               {
29                                  issu2=false;
30                               }
31                         }
32                         
33                         if(issu2==true&&i+j==n)
34                         {
35                            
36                             count++;
37                             
38                         }
39                             
40                     }
41                 }
42                     
43             }
44                 
45             Console.WriteLine(count);
46             
47         }

三、总结

case不能完全通过,我还以为是嵌套了太多层的for循环和if,引入了一些我考虑之外的情况。结果是33行isssu2=true,少写了一个等号,但是竟然编译通过了?


原文地址:https://www.cnblogs.com/yuanyuanhi/p/12180920.html