c++编写判断一个正整数是否是素数的函数
程序如下:(我输入的什么数输出都不是素数,麻烦看看哪里错了)#include<iostream>usingnamespacestd;intprime(intx){intn...
程序如下:(我输入的什么数输出都不是素数,麻烦看看哪里错了)
#include<iostream>
using namespace std;
int prime(int x)
{
int n,t=1;
for(n=2;n<x/2;n++)
{
if(x%n==0&&x!=n)
t=0;
else
t=1;
}
return t;
}
int main()
{
int a,b;
cout<<"please input 1 number:";
cin>>a;
if(a<=1)
cout<<"输入有误";
else
{
b=prime(a);
{
if(b==0)
cout<<a<<"是素数"<<endl;
else
cout<<a<<"bu是素数"<<endl;
}
}
return 0;
} 展开
#include<iostream>
using namespace std;
int prime(int x)
{
int n,t=1;
for(n=2;n<x/2;n++)
{
if(x%n==0&&x!=n)
t=0;
else
t=1;
}
return t;
}
int main()
{
int a,b;
cout<<"please input 1 number:";
cin>>a;
if(a<=1)
cout<<"输入有误";
else
{
b=prime(a);
{
if(b==0)
cout<<a<<"是素数"<<endl;
else
cout<<a<<"bu是素数"<<endl;
}
}
return 0;
} 展开
展开全部
int prime(int x)
你的函数运行后,如果是素数,返回 1,否则返回 0;
if(b==0) 这个语句写反了,b=0就不是素数啦;
你的
int prime(int x)函数里也是错的,if语句不能跳出循环,所以返回的 t就是就是最后一次循环的值
。
#include<iostream>
using namespace std;
int prime(int x)
{
int n;
for(n=2;n<x/2;n++)
{
if(x%n==0)
return 0; //只要有一个因子就不是素数,没必要循环下去,直接退出
}
return 1;
}
int main()
{
int a,b;
cout<<"please input 1 number:";
cin>>a;
if(a<=1)
cout<<"输入有误";
else
{
b=prime(a);
{
if(b==1) //这里的值要与函数的返回值匹配
cout<<a<<"是素数"<<endl;
else
cout<<a<<"bu是素数"<<endl;
}
}
return 0;
}
你的函数运行后,如果是素数,返回 1,否则返回 0;
if(b==0) 这个语句写反了,b=0就不是素数啦;
你的
int prime(int x)函数里也是错的,if语句不能跳出循环,所以返回的 t就是就是最后一次循环的值
。
#include<iostream>
using namespace std;
int prime(int x)
{
int n;
for(n=2;n<x/2;n++)
{
if(x%n==0)
return 0; //只要有一个因子就不是素数,没必要循环下去,直接退出
}
return 1;
}
int main()
{
int a,b;
cout<<"please input 1 number:";
cin>>a;
if(a<=1)
cout<<"输入有误";
else
{
b=prime(a);
{
if(b==1) //这里的值要与函数的返回值匹配
cout<<a<<"是素数"<<endl;
else
cout<<a<<"bu是素数"<<endl;
}
}
return 0;
}
2014-12-16
展开全部
int prime(int x)
{
int n;
for(n=2;n<=x/2;n++)
{
if(x%n==0)
return 0;
}
return 1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int prime(int x)
{
int itmp = x / 2 + 1;
for(int n = 2; n < itmp; n++)
{
if(x % n ==0 && x != n)
{
return 1;
}
}
return 0;
}
替换下自己看看就明白了,主要要+1 ,要不然5这个不能判断。
{
int itmp = x / 2 + 1;
for(int n = 2; n < itmp; n++)
{
if(x % n ==0 && x != n)
{
return 1;
}
}
return 0;
}
替换下自己看看就明白了,主要要+1 ,要不然5这个不能判断。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-03-31 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
c++编写判断素数的函数:
代码如下:
//程序的目的是求0-n之间所有的素数,以下是思路
#include <iostream.h>
#include <math.h>
void main()
{
int i,k; //声明i,k
cin>>k;// 输入k
for(i=2;i<k;i++)//循环i,不是素数么,从2开始
{
int a;//新的变量
int f = 1;
for(a=2;a<i;a++)//a的作用是当一个除数,检验i是否为素数
{
if(i%a==0)
f = 0;
}
if(f==1)//当i除以除1外所有自己的因数时,若都有余数,则此数为素数。
cout<<i<<endl;//输出i
}
}
素数:质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2。
代码如下:
//程序的目的是求0-n之间所有的素数,以下是思路
#include <iostream.h>
#include <math.h>
void main()
{
int i,k; //声明i,k
cin>>k;// 输入k
for(i=2;i<k;i++)//循环i,不是素数么,从2开始
{
int a;//新的变量
int f = 1;
for(a=2;a<i;a++)//a的作用是当一个除数,检验i是否为素数
{
if(i%a==0)
f = 0;
}
if(f==1)//当i除以除1外所有自己的因数时,若都有余数,则此数为素数。
cout<<i<<endl;//输出i
}
}
素数:质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
using namespace std;
int prime(int x)
{
int n,t=1;
for(n=2;n<x/2;n++)//函数的内容改了,你好好读读你for循环就知道错在哪里了
{
if(x%n==0&&x!=n)
return 1;
}
return 0;
}
int main()
{
int a,b;
cout<<"please input 1 number:";
cin>>a;
if(a<=1)
cout<<"输入有误";
else
{
b=prime(a);
{
if(b==0)
cout<<a<<"是素数"<<endl;
else
cout<<a<<"bu是素数"<<endl;//这里是不是该写 不是?
}
}
//getchar();getchar();
return 0;
}
using namespace std;
int prime(int x)
{
int n,t=1;
for(n=2;n<x/2;n++)//函数的内容改了,你好好读读你for循环就知道错在哪里了
{
if(x%n==0&&x!=n)
return 1;
}
return 0;
}
int main()
{
int a,b;
cout<<"please input 1 number:";
cin>>a;
if(a<=1)
cout<<"输入有误";
else
{
b=prime(a);
{
if(b==0)
cout<<a<<"是素数"<<endl;
else
cout<<a<<"bu是素数"<<endl;//这里是不是该写 不是?
}
}
//getchar();getchar();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询