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↵ 展开
实现分解的过程用函数实现。
输入:整数序列,0
输出:偶数1 = 素数A + 素数B (当输入是偶数时)
奇数1 is odd number! (当输入是奇数时)
测试用例:
输入 3 4 0↵
输出 3 is odd number!↵
4=2+2↵ 展开
展开全部
楼主程序思路没什么问题,但是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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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 ;
}
}
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 ;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询