c/c++语言开发共享偶数拆分问题

问题描述:将任意偶数拆分为两个素数之和。 tip:素数:对于任意整数n,如果除1和n外不能被其他数整除,则称n为一个素数。 解决思路: 一、素数判定:1.对于任意大于1的整数n,用n分别除以2到n-1,如果余数全不为零,则称n为一个素数 2.对于任意大于1的整数n,用n分别除以2到根号n,如果余数全 …

问题描述:将任意偶数拆分为两个素数之和。

tip:素数:对于任意整数n,如果除1和n外不能被其他数整除,则称n为一个素数。

解决思路:

      一、素数判定:1.对于任意大于1的整数n,用n分别除以2到n-1,如果余数全不为零,则称n为一个素数

             2.对于任意大于1的整数n,用n分别除以2到根号n,如果余数全不为零,则称n为一个素数

      二、设输入的偶数为n,n=a+b 用上述方法判定a、b是否为素数即可。

代码如下:

已在vs2010中编译完成。

#include<stdio.h>  #include<stdlib.h>  #include<math.h>  void main()  {   int a,d,flag=0;   float b,c;  loop:   {    printf("请输入一个偶数:n");    scanf("%d",&a);   }   if(a%2!=0)    goto loop;   for(b=2;b<=a/2;b++)   {    for(d=2;d<=sqrt(b);d++)     if((int)b%d==0)      break;    if (d>sqrt(b))     c=a-b;    else continue;    for(d=2;d<=sqrt(c);d++)     if((int)c%d==0)      break;    if (d>sqrt(c))    {     printf("%d = %d + %dn",a,(int)b,(int)c);     flag=1;    }    else continue;   }   if((int)flag==0)    printf("不能拆分n");   system("pause");  }

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/603668.html

(0)
上一篇 2021年5月11日
下一篇 2021年5月11日

精彩推荐