加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C语言偶数拆分

发布时间:2020-12-15 04:51:20 所属栏目:百科 来源:网络整理
导读:题目(Description): 输入一个大于等于6的正偶数,将其拆分成两个素数(质数)的和,比如12=5+7,20=3+17。 素数(质数):除了1和本身外没有其他因子的数,比如2、3、5、7、11、13 … 一般规定1不是素数。 要求:编写一个求素数的函数。 输入(Input ):

题目(Description):


输入一个大于等于6的正偶数,将其拆分成两个素数(质数)的和,比如12=5+7,20=3+17。


素数(质数):除了1和本身外没有其他因子的数,比如2、3、5、7、11、13 … 一般规定1不是素数。


要求:编写一个求素数的函数。


输入(Input ):


一个大于等于6的正偶数


输出(Output):


(1)如果输入的是奇数或小于6的偶数,则输出"Input an even num (>=6)"(首字母大写,单词间一个空格,括号内无空格,没有句号".")


(2)如果是合法输入(一个大于等于6的正偶数),则输出两个素数且满足它们的和是输入的偶数


要求:小素数在前,大素数在后;且是所有可能拆分中,有最小素数的那一组。


比如:20=3+17 且 20=7+13,则输出3+17(中间没有空格),因为这一组有满足条件的最小素数


提示(Hint):


分别编写prime 和 main 函数,用prime 函数实现素数判断。


int prime(int y)


{


如果y是素数则返回1


否则返回0


}


示例1(Sample):


输入(Input):


20


输出(Output):


3+17


示例2(Sample):


输入(Input):


33


输出(Output):


Input an even num (>=6)

#include

#include

int IsPrime(int n)

{

int i;

if (n <= 1)

return 0;

for (i = 2; i <= (int)sqrt(n); i++)

if (n % i == 0 && n != 2)

return 0;

return 1;

}

int main()

{

int n,i;

scanf("%d",&n);

if (n % 2 != 0 || n < 6)

printf("Input an even num (>=6)");

else {

for (i = 1; i <= n; i++)

if (IsPrime(i) && IsPrime(n - i))

break;

printf("%d+%d",i,n - i);

}

return 0;

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读