当前位置:编程学习 > C/C++ >>

c++程序编写高手请进

编写一个函数isprime(int a)用来判断正整数a是否为素数。若是素数,返回1,否则返回0,若参数不合法返回-1。使用此函数输出1000以内的所有素数。

 

哪个高手能用c++语言帮我写程序出来?

最好有解析啦,我是初学者

答案:
#include<iostream>
using namespace std;


int isPrime(int m)
{
 for(int i=2;i<m;i++)
 {
  if(m%i==0)
  {
   return 0;
   break;
  }
 }
 return 1;
}

int main()
{
 int m;
 int iCount=0;
 for(m=3;m<1000;m++)
 {
  if(isPrime(m))
  {
   cout<<m<<" ";
   iCount++;
   if(0==iCount%10)
   {
    cout<<endl;  
   }
  }
  
 }
 return 0;
}

#include <iostream>
using namespace std;
int func(int a)
{
 if (a<1 || a>1000)
 {
  return -1;
 }
 for (int i=2; i<a-1;i++)
 {
  if (a%i==0)
  {
   
   return 0;
  }
 }
 cout<<a<<endl;
 return 1;
}
void main()
{
 for (int i=2;i<1000;i++)
 {
  func(i);
 }
}

结果

2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
211
223
227
229
233
239
241
251
257
263
269
271
277
281
283
293
307
311
313
317
331
337
347
349
353
359
367
373
379
383
389
397
401
409
419
421
431
433
439
443
449
457
461
463
467
479
487
491
499
503
509
521
523
541
547
557
563
569
571
577
587
593
599
601
607
613
617
619
631
641
643
647
653
659
661
673
677
683
691
701
709
719
727
733
739
743
751
757
761
769
773
787
797
809
811
821
823
827
829
839
853
857
859
863
877
881
883
887
907
911
919
929
937
941
947
953
967
971
977
983
991
997
Press any key to continue】

痞哥给分

#include<stdio.h>

void main()

{  int ispime(int a);                                              /*对ispime函数的声明*/

int i,j==0;

for(i=2;i<100;i++)                                                 /*判断100以内的数是否为素数*/

 {  t=isprime(i);

if(t==0) printf("是素数'');

else printf("不是素数");

if(j%5==0)  printf("|n");                             /*输出5个换行*/      

j++;          

}

int isprime(int a)       

int c==0,i;

for(i==2;i<a;i++)

if(a%i==0) c==1;

return(c)

}

你用下看行不行哦

bool Ifprime(int a)
{
    double m=sqrt(a);
    for (int i=2;i<m;i++)
        if(0==a%i) return false;
        else return true;
}

int isprime(int a)

{

     for(int i=2;i<a;i++)
     {
          if(a%i == 0)

          {
               return 0;//你传的值除以其它的2到a-1的数能除尽,所以不是素数
               break;
          }
     }
     if(a==i)//如果a的值除了自己都不能除尽,所以是素数
     {
          return 1;

     } 
      if(a==1)
      {
           return 0;//1不是质数
      }

}

 

//执行一下看行不~~~

//欢迎讨论!

楼上的效率都不咋的,我这个效率更高#include<iostream>#include<math.h>using namespace std;bool M[1001]; void prime(){int i,j;for(i=0;i<=1000;i++)  M[i]=0;for(i=2;i<=sqrt(1000);i++){if(!M[i])  for(j=2*i;j<=1000;j+=i)    M[j]=1;}   M[0]=M[1]=1;}        bool isprime(int a){return !M[a];}int main(){int m,i;prime();for(i=1;i<=1000;i++)  if(isprime(i))    cout<<i<<" ";   cout<<endl;return 0;}

上一个:C++语言零基础快速入门教程
下一个:javascript,JAVA和c++有什么区别联系?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,