判断一个数字能否被4个素数相加得到

今天无意间看到一篇文,讲经典C语言面试十个代码。其中一个讲如何判断一个数字可被两个素数相加得到,突然想到自己刚写程序的时候写过一个判断一个数字能否被4个素数相加的代码。特此翻出这篇古董代码。因为最近都没在看程序,只能翻翻压箱底的货啦。惭愧惭愧,同学你周一还要考试啊!赶紧看书去吧。还那么不自律!

#include <stdio.h>
int isprime(int);
int main (void)
{
  int bum = 24;   //当时连scanf都不会,所以用的是直接在程序里面给出数字,这个bum就是可以任意修改的变量了。
  int a1 = 2, a2 = 2, a3 = 2, a4 = 2;

  for (a1 = 2; a1 <= bum -1 - a2 - a3 - a4; a1++ )
  {
      if (isprime(a1) == 0)
          continue;
      else 
          a1 = isprime(a1); 
  }

  while ( a1 != isprime(a1))
  {
          a1--;
  }

  for (a2 = 2; a2 <= bum - 1-a1-a3-a4; a2++ )

  {
     if (isprime(a2) == 0)
                  continue;
     else 
                  a2 = isprime(a2); 
  }

  while ( a2 != isprime(a2))
  {
     a2--;
  }

  for (a3 = 2; a2 <= bum -1 -a1-a2-a4; a3++ )

  {
    if (isprime(a3) == 0)
                continue;
    else 
                a3 = isprime(a3); 
  }

  while ( a3 != isprime(a3))
  {
    a3--;
  }

  for (a4 = 2; a4 <= bum - 1 -a1-a2-a3; a4++ )

  {
    if (isprime(a4) == 0)
                continue;
    else 
                a4 = isprime(a4); 
  }

  while ( a4 != isprime(a4))
  {
        a4--; 
  }

  printf("%5d %5d %5d %5d", a1, a2, a3, a4);

  return 0;
}


int isprime(int num)
{
    int i;
    int k = 1;
    for (i = 2; i*i <= num; i++)
   {
    if ((num%i) != 0)
       {
          k = 1;
          continue;
       }
    else
       {
           k=0;
           break; 
       } 
   }

   if (k == 0)
      return 0;
   if (k == 1)
      return num;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

取啥都被占用

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值