user-0 提问: 求助大佬

回复:
user: user-1
content: 这是按你的代码改的，运行如下图： 程序代码：int ss(int x){    int f=1;    if(x<=1) f=0; //小于等于1的数都没有素数    if(x==2) f=1; //数字2只有1和2两个因数，因而必定是素数    for(int i=2;i<x;i++)//从2到x-1都无法被x整除，x是素数         if(x%i==0) f=0;    return f; }  int main(int argc, char* argv[]) {     int M,N,count=0,sum=0;     printf("请输入给定区间整数M和N(1≤M≤N≤1000)：");     scanf("%d %d",&M,&N);     if(M>=1&&M<=N&&N<=1000)         {          for(int j=M;j<=N;j++)            {if(ss(j)==1)                 {count++;                  sum+=j;                  printf("   %d   ",j);                  if(count%5==0)                  printf("\n");                 }            }         printf("\namount=%d sum=%d",count,sum);        }     else printf("输入给定区间整数M和N错误！");     cin>>M;     return 0;  }

user: user-2
content: #include <stdio.h> #include <math.h> int Judge(int i); int main() { 	int m,n; 	int i,j,z = 0; 	int sum = 0; 	printf("请输入区间范围: "); 	scanf("%d %d",&m,&n); 	for(i = m;i <= n;i ++) 	{ 		j = Judge(i); 		if(j == 1) 		{ 			printf("%d ",i); 			z ++; 			if(z % 5 == 0) 			{ 				printf("\n"); 			} 			sum += i; 		} 	 } 	 printf("\namount = %d sum = %d",z,sum);  	return 0; } int Judge(int b) { 	int i,a; 	if(b == 1) 	{ 		return 0; 	} 	a = (int)sqrt(b);//因为如果一个数可以被别的数整除那那个数和商在开平方的值的两侧，所以求一半就可以了  	for(i = 2;i <= a;i ++) 	{ 		if(b % i == 0) 		{ 			return 0; 		} 	} 	return 1; }

user: user-3
content: #include <stdio.h> #include <math.h>  //int ss(int x) int is_prime(int x) {     if (x < 2)         return 0;      //int f = 1;     int i;     for(i=2;i<x;i++)     {         if(x%i==0) {             //f=0;             break;         }     }     if (i < x)         return 0;     else         return 1;      //return f; } int main() {     int M,N,count=0,sum=0;     scanf("%d %d",&M,&N);     if (M < 1 || N < M || N > 1000)         return -1;     //if(M>=1&&M<=N&&N<=1000)     //{         for(int j=M;j<=N;j++)         {             if(is_prime(j)==1)             {                 count++;                 if(count%5==1&&count>1)                     printf("\n");                 printf("%d ",j);                 sum+=j;             }         }         printf("\namount=%d sum=%d",count,sum);     //}     //else return 0;     return 0; }  供参考～  楼主的素数判断有问题，楼主判断逻辑里1也是素数了。

user: user-4
content: 引用 6 楼 qzjhjxj 的回复:[quote=引用 5 楼 user-4 的回复:]#include <stdio.h> #include <math.h> int ss(int x) {    int f = 1;    if (x <= 2)         return 0;    for (int i = 2; i < x; i++)    {       if (x % i == 0)          f = 0;    }    return f; } int main() {    int M, N, count = 0, sum = 0;    scanf("%d %d", &M, &N);    if (M >= 1 && M <= N && N <= 1000)    {       for (int j = M; j <= N; j++)       {          if (ss(j))          {             count++;             printf("%d ", j);             sum += j;             if (count % 5 == 0)             {                printf("\n");             }          }       }       printf("\namount=%d sum=%d", count, sum);    }    else       return 0; } 楼上的第六句把2排除在外了，2是素数。[/quote]  可能我记错了吧

user: user-1
content: 引用 5 楼 user-4 的回复:#include <stdio.h> #include <math.h> int ss(int x) {    int f = 1;    if (x <= 2)         return 0;    for (int i = 2; i < x; i++)    {       if (x % i == 0)          f = 0;    }    return f; } int main() {    int M, N, count = 0, sum = 0;    scanf("%d %d", &M, &N);    if (M >= 1 && M <= N && N <= 1000)    {       for (int j = M; j <= N; j++)       {          if (ss(j))          {             count++;             printf("%d ", j);             sum += j;             if (count % 5 == 0)             {                printf("\n");             }          }       }       printf("\namount=%d sum=%d", count, sum);    }    else       return 0; } 楼上的第六句把2排除在外了，2是素数。

user: user-4
content: #include <stdio.h> #include <math.h> int ss(int x) {    int f = 1;    if (x <= 2)       return 0;    for (int i = 2; i < x; i++)    {       if (x % i == 0)          f = 0;    }    return f; } int main() {    int M, N, count = 0, sum = 0;    scanf("%d %d", &M, &N);    if (M >= 1 && M <= N && N <= 1000)    {       for (int j = M; j <= N; j++)       {          if (ss(j))          {             count++;             printf("%d ", j);             sum += j;             if (count % 5 == 0)             {                printf("\n");             }          }       }       printf("\namount=%d sum=%d", count, sum);    }    else       return 0; }