注册 登录
编程论坛 C++教室

编写一个程序判断一个数是否为素数

北木 发布于 2010-04-21 16:08, 16060 次点击
Input
整数
Output
1或0(其中1表示此数为素数,0为表示为不是素数)

# include<iostream>
# include<cmath>
using namespace std;
int main()
{int i,j,k;
cin>>j;
k=sqrt(j);
for(i=2;i<=k;i++)
if(j%i==0)break;
if(i>k)
cout<<1;
else cout<<0;
return 0;
}


我在我们学校网站里提交了几遍  为什么还是错了  各位高手帮帮忙!!!谢啦!!
12 回复
#2
王大元2010-04-21 16:10
那个是math。h吗?
#3
mudu862010-04-21 16:45
if else 有点问题
改成这样不知道行不行
# include<iostream>
# include<cmath>
using namespace std;
int main()
{int i,j,k;
cin>>j;
k=sqrt(j);
for(i=2;i<=k;i++)
if(j%i==0)
{cout<<0;
return 0;
}
cout<<1;
return 1;
}

#4
shiyuehai2010-04-21 18:32
什么错了?????
#5
北木2010-04-21 22:17
回复 2楼 王大元
不是  C语言里是math.h  C++里是cmath
#6
北木2010-04-21 22:25
回复 3楼 mudu86
在我自己的电脑上可以  但不知道在学校网站可以不??刚刚电脑出了问题  自己弄了很久 一直没来得及上网  呵呵我们学校校园网很慢  那个网站打不开了!!!明天再看看啊  呵呵 还是谢谢你啊!!
#7
温度2010-04-23 23:33
#include<iostream>
using namespace std;
int main()
{
    int i,j,k;
    cin>>j;
    if(j%2==0)
    {
        cout<<"不是素数";
    }
    else
    {
        cout<<"是素数";
    }
    cout<<"\n";
}

#8
aiyinsitan2010-04-26 12:59
我的编译器可以通过,而且程序也没错误
#9
aiyinsitan2010-04-26 13:02
回复 7楼 温度
你这里明显错了啊
9%2!=0  那你就输出是素数
  素数的概念是只能整除1或本身
#10
南国利剑2010-04-26 18:58
我给你写一个试试。没有调试,不过应该没有问题,你试试看。
程序代码:
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
   bool m=true;
   int n,k;
   cout<<"输入一个正整数:";
   cin>>n;
   if(n<=0)  {cout<<"输入错误!";exit(0);};
   if(n==1)  {cout<<"既不是质数也不是合数。";exit(1);}
   k=sqrt(n);
   for(int i=2;i<=k;i++)
      if(n%i==0)  
         {m=false;break;}
      
   if(m)
     cout<<n<<"是质数。";
   else
     cout<<n<<"是合数。";
   return 1;
     
   

}

#11
南国利剑2010-04-26 22:45
程序我刚刚在我的vc中试过了,没有问题。
希望对你有帮助。
很高兴认识你,以后有机会多多交流
#12
aiyinsitan2010-04-27 15:40
k=sqrt(j);
for(i=2;i<=k;i++)
if(j%i==0)break;
if(i>k)  这里什么意思啊?? 不是FOR 循环已经定义i<K了吗??
cout<<1;
#13
blind2012-09-14 11:35
sqrt(j)  如果j等于14或34那应该也不对吧
1