| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- [code]
 
 - #include <stdio.h>
 
 - #include <math.h>
 
  
- int prime( int p );
 
 - int PrimeSum( int m, int n );
 
  
- int main()
 
 - {
 
 -     int m, n, p;
 
  
-     scanf("%d %d", &m, &n);
 
 -     printf("Sum of ( ");
 
 -     for( p=m; p<=n; p++ ) {
 
 -         if( prime(p) != 0 )
 
 -             printf("%d ", p);
 
 -     }
 
 -     printf(") = %d\n", PrimeSum(m, n));
 
  
-     return 0;
 
 - }
 
  
- /* 你的代码将被嵌在这里 */
 
  
- int prime(int p)
 
 - {
 
 -     if(p<=1)
 
 -     {
 
 -         return 0;
 
 -     }
 
 -     else if(p==2)
 
 -     {
 
 -         return 1;
 
 -     }
 
 -     else
 
 -     {
 
 -         for(int i=2;i<p;i++)
 
 -         {
 
 -             if(p%i==0)
 
 -             {
 
 -                 return 0;
 
 -             }
 
 -         }
 
 -         return 1;
 
 -     }
 
 - }
 
  
- int PrimeSum(int m,int n)
 
 - {
 
 -     int a;
 
 -     int sum=0;
 
 -     
 
 -     for(a=m;a<=n;a++)
 
 -     {
 
 -         if(prime(a)==1)
 
 -         {
 
 -             sum+=a;
 
 -         }
 
 -     }
 
 -     return a;
 
 - }
 
  复制代码 [/code]
换个素数判断方法: 
m 只需被 2 ~ 根号m 之间的每一个整数去除就可以判断为素数。如果 m 不能被 2 ~根号m  间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 17 是素数。
 - #include<stdio.h>
 
 - #include<math.h>
 
 - int main()
 
 - {
 
 -         int start, end, i, k, m, flag = 1, h = 0;
 
 -         do
 
 -         {
 
 -                 printf("Input START and END:");
 
 -                 scanf("%d%d", &start, &end);
 
 -         } while (!(start > 0 && start < end));
 
 -         printf("......... prime table(%d-%d).........\n", start, end);
 
 -         for (m = start; m <= end; m++)    //m从start遍历到end
 
 -         {
 
 -                 k = sqrt(m);    //k等于根号m
 
 -                 for (i = 2; i <= k; i++)    //遍历2到k,看能否整除
 
 -                         if (m % i == 0)
 
 -                         {
 
 -                                 flag = 0;  //如果可以flag变化
 
 -                                 break;
 
 -                         }
 
 -                 if (flag)   //这里对应不能整除的情况,也就是素数,打印出来
 
 -                 {
 
 -                         printf("%-4d", m);
 
 -                         h++;
 
 -                         if (h % 10 == 0)
 
 -                                 printf("\n");
 
 -                 }
 
 -                 flag = 1;
 
 -         }
 
 -         printf("\nThe total is %d", h);
 
 -         return 0;
 
 - }
 
  复制代码 
 
 
 |   
 
 
 
 |