C语言输入若干个大于2的正整数,如果是偶数,则将其分解为两个素数并输出 5

编写程序,输入若干个大于2的正整数,如果是偶数,则将其分解为两个素数并输出;如果输入的奇数,则输出“×××isoddnumber!”;输入为0时程序结束。只有1和它本身这... 编写程序,输入若干个大于2的正整数,如果是偶数,则将其分解为两个素数并输出;如果输入的奇数,则输出“××× is odd number!” ;输入为0时程序结束。只有1和它本身这两个因数的自然数叫做素数,0和1既不是素数也不是和数。

实现分解的过程用函数实现。

输入:整数序列,0

输出:偶数1 = 素数A + 素数B (当输入是偶数时)

奇数1 is odd number! (当输入是奇数时)

测试用例:
输入 3 4 0↵
输出 3 is odd number!↵
4=2+2↵
展开
 我来答
blaqhxx
2011-06-11 · TA获得超过481个赞
知道答主
回答量:360
采纳率:0%
帮助的人:207万
展开全部
楼主程序思路没什么问题,但是main函数前面结束了你后面的东西都不运行,我帮你略微改了下,并运行通过,下面是代码
#include<stdio.h>
int main()
{
int a1,a2,b1,b2,s1=0,s2=0,i,j,n,A=1,B=1;
printf("输入个数字");
scanf("%d",&n);

if(n%2!=0||n<=2)
{
printf("错误");
}
for(i=3;i<n-3;i++)
{
for(A;A<=i;A++)
{
b1=i%A;
if(!b1) s1++;
}
if (s1==2)//////////s1==2说明只能被1和本身除尽
{

for(j=n-i;j>3;j--)
for(B;B<=j;B++)//这里我用了B,因为你的A现在的值已经不是1,不能用来判断不是不是素数
{
b2=j%B;
if(!b2)s2++;
}
if(s2==2)///////////s2==2说明只能被1和本身除尽
printf("%d=%d+%d\n",n,i,n-i);

}
A=1;//完成一次循环将数据重置
B=1;
s1=0;
s2=0;
}
scanf("%d",&a1);

//////////////////////////////////// //n=3+(n-3)=i+j

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
690023056
2011-06-08
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
#include "iostream"
using namespace std;
int prime(int n)
{
int i;
for(i=2;i<n/2;i++)
if(n%i==0) return 0;
return 1;
}

void main()
{
int n,a;
cout<<"输入一个整数:";
cin>>n;
if(n<=2){cout<<"Error"<<endl;return;}
if(n%2!=0){cout<<n<<"is odd number"<<endl;return ;}
for(a=2;a<n;a++)
if(prime(a)&&prime(n-a))
{
cout<<n<<"="<<a<<"+"<<n-a<<endl;
return ;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1317204986
2011-06-07 · TA获得超过492个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:357万
展开全部
#include<stdio.h>
int
sushu(int n)
{
for(int i=2;i<n;i++)
if(n%i==0)
return 0;
return 1;
}
int
main()
{
int n;
scanf("%d",&n);
while(n!=0){
if(n%2==0){
for(int i=2;i<n;i++){
if(sushu(i)==1&&sushu(n-i)==1){
printf("%d=%d+%d\n",n,i,n-i);
break;
}
}
}
else
printf("%d is odd number!\n",n);
scanf("%d",&n);
}
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式