| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 633 人关注过本帖
标题:素数问题、急
只看楼主 加入收藏
卡其
Rank: 2
等 级:论坛游民
帖 子:96
专家分:36
注 册:2010-8-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
素数问题、急
函数fun的功能是:将一个大偶数a(a >= 6)分解成两个素数之和的形式。例如:若输入数值10,则输出10 = 3 + 7 和 10 = 5 + 3.
#include <stdio.h>
#include "math.h"
void fun(int a)
 {
 int k, m1, m2;
 for (m1 = 3; m1 <= a / 2; m1 += 2)
 {
 for (k = 2; k <= sqrt(m1); k++) if (m1 % k == 0) break;
 if (k > sqrt(m1)) m2 = __________;
 else break;
 for (k = 2; k <= sqrt(m2); k++) if (m2 % k == 0) ___________;
 if (k > sqrt(m2)) printf("%d = %d + %d\n",a,m1,_______);
 }
}
int main(void)
{
 int a;
 printf("\nEnter a:");
 scanf("%d",&a);
 fun(a);
 return 0;
}
搜索更多相关主题的帖子: include 
2011-05-04 23:17
卡其
Rank: 2
等 级:论坛游民
帖 子:96
专家分:36
注 册:2010-8-30
收藏
得分:0 
帮忙填写空白处、解释下程序、想了半天都没想出来、郁闷
2011-05-04 23:20
撸撸君丶
Rank: 1
等 级:新手上路
帖 子:3
专家分:6
注 册:2011-4-30
收藏
得分:5 
#include <stdio.h>
#include "math.h"
void fun(int a)
{
 int k, m1, m2;
 for (m1 = 3; m1 <= a / 2; m1 += 2)
 {
 for (k = 2; k <= sqrt(m1); k++) if (m1 % k == 0) break;
 if (k > sqrt(m1)) m2 = ___m1_______;
 else break;
 for (k = 2; k <= sqrt(m2); k++) if (m2 % k == 0) ___break________;
 if (k > sqrt(m2)) printf("%d = %d + %d\n",a,m1,__a-m1_____);
 }
}
int main(void)
{
 int a;
 printf("\nEnter a:");
 scanf("%d",&a);
 fun(a);
 return 0;
}
2011-05-05 00:02
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:5 
楼上正解。

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-05-05 00:17
卡其
Rank: 2
等 级:论坛游民
帖 子:96
专家分:36
注 册:2010-8-30
收藏
得分:0 
回复 3楼 撸撸君丶
能解释下不。
2011-05-05 08:43
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:5 
回复 3楼 撸撸君丶
此程序有错哦。输入10,输出10=3+9;10=5+9
2011-05-05 09:44
HCG72
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2011-5-4
收藏
得分:5 
正确的应该是这样:
#include <stdio.h>
 #include "math.h"
 void fun(int a)
 {
  int k, m1, m2;
  for (m1 = 3; m1 <= a / 2; m1 += 2)
  {
  for (k = 2; k <= sqrt(m1); k++) if (m1 % k == 0) break;
  if (k > sqrt(m1)) m2 =a-m1;
  else break;
  for (k = 2; k <= sqrt(m2); k++) if (m2 % k == 0) break;
  if (k > sqrt(m2)) printf("%d = %d + %d\n",a,m1,m2);
  }
 }
 int main(void)
 {
  int a;
  printf("\nEnter a:");
  scanf("%d",&a);
  fun(a);
  return 0;
 }
2011-05-05 14:56
卡其
Rank: 2
等 级:论坛游民
帖 子:96
专家分:36
注 册:2010-8-30
收藏
得分:0 
楼上两个都是对的。。。。求解释。。。
2011-05-05 18:02
快速回复:素数问题、急
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016429 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved