牛客网-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,少写了一个等号,但是竟然编译通过了?