做58同城的网站要多少钱德州网站建设哪家专业
16.一张单据上有一个5位数的号码为6**42,其中百位数和千位数已模糊不清,但知道该数能被 57 和 67 除尽。设计一个算法,找出该单据所有可能的号码。
17.编程序求2~10000以内的完全数。一个数的因子(除了这个数本身)之和等于该数本身。
18.找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum,请编写函数countValue()实现程序要求。
19.将大于整数m且小于n的k个素数存入数组x。请编写函数num()实现程序的要求.
20.选取出100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数CN以及这些素数值的和SUM。请编写函数实现程序要求.
16、我们可以看到是百位和千位不清楚是多少,我们可以从01-99来进行猜测,代码如下:
    for (int i = 1; i <= 99; i++)
     {
         int number = 60000 + 6 * i + 42; // 构建六位数,形式为60000 + 6 * (01-99) + 42
         if (IsValidNumber(number))
         {
             Console.WriteLine($"有效的单据号码是: {number}");
             break; // 找到一个有效的单据号码后就停止循环
         }
     }
 }
static bool IsValidNumber(int number)
 {
     // 这里可以添加更多的校验逻辑,例如检查百位和千位的模糊条件
     // 例如,检查百位和千位的和或乘积符合某种模式
     int hundredth = number / 100 % 10;
     int thousandth = number / 1000 % 10;
     // 假设模糊条件是百位和千位数字之和为5
     if (hundredth + thousandth == 5)
     {
         return true;
     }
     return false;
 }

17、外层循环遍历2到10000的所有整数,内层循环遍历这个数的所有因子,如果一个数的因子之和等于这个数本身,那么这个数就是完全数,输出它。代码如下:
 for (int number = 2; number <= 10000; number++)
  {
      int sum = 0;
      for (int i = 1; i < number; i++)
      {
          if (number % i == 0)
          {
              sum += i;
          }
      }
      if (sum == number)
      {
          Console.WriteLine(number);
      }
  }

18、判断素数,以及加上指定的数还是素数,我们可以根据以下步骤来进行:
-  
定义素数判断函数:首先,需要定义一个判断素数的函数。素数是指只能被1和自身整除的大于1的自然数。
 -  
遍历并判断:在1到100的范围内遍历每个数,使用素数判断函数检查该数及其加4和加10后的结果是否都是素数。如果是,则计数器加1,并将该数加入到结果集中。
 -  
输出结果:最后输出满足条件的整数个数。代码如下:
 
    int count = 0; // 计数器
     int sum = 0; // 满足条件的整数之和
     for (int i = 2; i <= 100; i++) // 从2开始到100遍历每个数
     {
         if (countValue(i) && countValue(i + 4) && countValue(i + 10)) // 检查I、I+4、I+10是否都是素数
         {
             count++; // 计数器加1
             sum += i; // 将满足条件的整数加入到和中
         }
     }
     Console.WriteLine($"满足条件的整数的个数={count}"); // 输出满足条件的整数个数
     Console.WriteLine($"满足条件的整数的和值={sum}"); // 输出满足条件的整数之和
 }
// 判断一个数是否为素数的函数
 static bool countValue(int number)
 {
     if (number <= 1) return false; // 小于等于1的数不是素数
     for (int i = 2; i * i <= number; i++) // 只需检查到平方根即可提高效率
     {
         if (number % i == 0) return false; // 如果能被其他数整除,则不是素数
     }
     return true; // 不能被整除,则是素数
 }

19、代码如下,根据素数来进行判断:
    Console.WriteLine("请输入对应的m,n,k的值");
     int m = int.Parse(Console.ReadLine());
     int n = int.Parse(Console.ReadLine());
     int k = int.Parse(Console.ReadLine());
    List<int> res = num(m, n, k);
     Console.WriteLine("结果是:"+res);
 }
// 判断一个数是否为素数的函数
 public static List<int> num(int m, int n, int k)
 {
     List<int> primes = new List<int>();
     for (int i = m; i < n && primes.Count < k; i++)
     {
         if (IsPrime(i))
         {
             primes.Add(i);
         }
     }
     return primes;
 }
private static bool IsPrime(int number)
 {
     if (number <= 1)
     {
         return false;
     }
     if (number <= 3)
     {
         return true;
     }
     if (number % 2 == 0 || number % 3 == 0)
     {
         return false;
     }
     for (int i = 5; i * i <= number; i += 6)
     {
         if (number % i == 0 || number % (i + 2) == 0)
         {
             return false;
         }
     }
     return true;
 }
20、这个问题可以通过三层循环解决,外层循环控制100到1000的数字,中间层循环控制个位数字,最内层循环控制十位数字,代码如下
 int count = 0;
  int num = 0;
  for (int i = 100; i <= 1000; i++)
  {
      int ones = i % 10; //个位数字
      int tens = i / 10 % 10; //十位数字
      int hundreds = i / 100; //百位数字
     if ((ones + tens) % 10 == hundreds)
      {
          Console.WriteLine(i);
          count++;
          num += i;
          Console.WriteLine("个数CN是:"+count);
          Console.WriteLine("和sum是:"+num);
      }
  }

