|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码
|
|