C语言编程求解1到n之间所有素数之和

作者&投稿:当涂宙 (若有异议请与网页底部的电邮联系)
编程a到b之间所有尾数为1的素数之和~

我只会讲一个大致的思路。求一个数m以内的素数你应该会求吧?先求b以内的素数,再求a以内的素数,然后将后者从前者中抠掉就行了。要求一个数m以内的素数,用素数判定方法再加上一个循环就行了。别说你连判断一个数是不是素数都不知道吧?我只会用C语言,不会Pacscal语言。只能点到为止了。

#include
#include
int prime(int x){
int i;
for(i=2;i<=(int)sqrt(x);i++)
if(x%i==0)
return 0;
return 1;
}
void main(){
int n,i,j,sum=2;
printf("n=
");
scanf("%d",&n);
printf("小于等于%d的素数
",n);
if(n>2){
printf("%4d",2);
j++;
}
for(i=3;i<=n;i+=2)
if(prime(i)==1){
printf("%4d",i);
sum=sum+i;
if(j!=0 && ++j%10==0)
printf("
");
}
printf("
和为%d",sum);
printf("
");
}

扩展资料:
c语言书写规则:
1.一个说明或一个语句占一行。
2.用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。
3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。
参考资料:
百度百科-c语言

#include<stdio.h>
#include<math.h>

int isPrime(int n)   ///是素数返回1,否则返回0
{
int i,k;
k = (int)sqrt(n);
for(i = 2; i <= k;i++)
{
     if(n % i == 0)   
        break;
}
if(i > k)
      return 1;
else
       return 0;
}

void main()
{
   int n,i,k,sum=0;
   printf("输入大于等于1的整数:n
");
   scanf("%d",&n);
for(i=1;i<=n;i++)
{
 if (isPrime(i)==1)
 {
  sum+=i;
 }
}
printf("%d",sum);
}


#include<stdio.h>

int isprime(int k)
{
int i;
for(i=2;i*i<=k;i++)//这个比较简单通过i*i<=k 来求k的开方i
//2*4=8, 只要判断2和3就可以判断他是否为素数,因为判断了2是否为因素就知道8/2=4为8的/
/////因/素
{
if(k%i==0)
return 0;
}
return 1;
}

int main()
{
int i, n, sum=0;
scanf("%d", &n);
for(i=2;i<=n;i++)
{
if(isprime(i))
sum+=i;
}
printf("%d", sum);
return 0;
}

返回bool比较方便吧
bool isprime(int k){
int j,i=k/2;
for(j=2;j<=i ; j++)
if(k%j==0)
return false;
return true;
}


C语言,求整数1-n中的素数和以及非素数和,大神求解。。。
程序基本正确的,只是忽略了1不是素数,按素数考虑了。只需要在if ( i%j==0 ) { b=0; break; }的后面添加语句if(i==1) b=0;就可以了。...if ( i%j==0 ) { b=0; break; }if(i==1) b=0;if ( b ) s0+=i; else s1+=i;......

C语言编程 输入一个正整n,生成一张阶乘表,输出1!~n!的值。
include<stdio.h>double fac(int n){if(n==0)return 1.0; return n*fac(n-1);}int main(){int i,n; scanf("%d",&n); for(i=1;i<n+1;i++) printf("%d!=%.0lf\\n",i,fac(i)); return 0;}

c语言编程:求1!到n!的和
楼主你好 具体代码如下:include<stdio.h> int fun(int n)\/\/求n!{ int i=1,c=1;while(i<=n){ c*=i;i++;} return c;} int main(){ int i,n;int sum=0;printf("输入n:");scanf("%d",&n);for(i=1 ; i<=n ; i++)sum+=fun(i);printf("输出:%d\\n",sum);return 0...

c语言编程问题 问题1;求1到n的阶乘 问题2:求1到n的偶数的和
int val = 1; for(i=1; i<=n; i++) { val *= i; } return val;}unsigned int xxx(unsigned int n){ unsigned int i; unsigned int val = 0; for(i=2; i<=n; i+=2) { val += i; } return val;} ...

C语言编程:有n个人围成一圈,按顺序从1到n编号。从第一个人开始,报到3...
{ if(3==i&&a[j]!=0){ a[j]=0;printf("%d号玩家出局\\n",j+1);k++;if(n-1==k)break;j=(j+1)%n;continue;} if(0==a[j]){ j=(j+1)%n;i--;continue;} j=(j+1)%n;} for(i=0;i<n;i++){ if(1==a)printf("%d号玩家活到的最后\\n",i+1);} } ...

C语言求助: 从键盘输入任意一个整数n,编程计算并输出1~n之间所有素数...
我手机回答的:For套for外面的循环n次,里面的循环次数与外面正在循环的相同,也就是说,外面循环到10了,里面的循环次数就要小于等于10,然后在里面的For,用10和计数器求余,用If判断输出就行了

C语言编写程序,求1-3+5-7+...-99+101的值
结论:C语言编程中,有多种方法可以求解1-3+5-7+...-99+101的值,下面分别介绍三种不同的实现方式。方法一,通过两个for循环分别累加正负奇数:在C语言中,一个可能的实现是通过两个for循环来分别累加1到101中的奇数和3到99中的奇数,然后相减得到结果。以下是代码片段:c#includemain(){inti,j...

C语言编程问题!!急用。。。 用递归算法编写,求1到n的累加和,在主函数中...
include <stdio.h> unsigned int func(unsigned int n){ return (n == 1)? 1 : n * func(n-1);} int main(void){ unsigned int n = 0, rval = 0;printf("Input data:");scanf("%u", &n);if (n == 0){ printf("Input error.\\n");return -1;} rval = func(n);prin...

用c语言程序编程实现1-n之间的偶数和,n从键盘输入
include <stdio.h>void main(){ int sum=0,n,i; scanf("%d",&n); for(i=1;i<=n;i++) { if(i%2==0) sum+=i; } printf("%d",sum);}

C语言编程求1 + 3 +5+7+ … +n的值,n的值由键盘输入,如果输入的n是偶数...
void main(){ int i,n,sum; sum = 0; scanf("%d",&n); if(n%2==0) n = n -1; i = 1; while(i <=n) { sum = sum +i; i =i +2; } printf("sum = %d",sum);}

东阳市18760279887: C语言 求出1~N内的所有素数 -
夷狮活血: #include <stdio.h> #include <math.h> void main() { int m,k,i,n=0;for(m=2;m<=1000;m=m+1){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf("%d",m);n=n+1;}if(n%1==0)printf(" ");}printf("\n"); }

东阳市18760279887: 用C编程 求1到第n个自然数中所有质数之和 -
夷狮活血: #include <stdio.h> int isSushu(int *n) { int tmp=2,flag=1;//初始化变量:tmp,一个零时被除数.flag,判断标记. do { if(*n==1) { flag=-1; break; }//判断是否为1,因为1既不是素数也不是和数.flag=-1. if(*n==2) { flag=1; break; }//判断是否为2,2...

东阳市18760279887: c语言 求1到n的素数和 -
夷狮活血: #include<stdio.h> main() { int i,j,n,sum=1; printf("please input a number"); scanf("%d",&n); for(i=2;i<=n;i++) { for(j=2;j<i;j++) { if (i%j==0) break; } sum=sum+i; } printf("和是%d",sum);//这句放这边试试 }希望对你有所帮助!

东阳市18760279887: 用C语言输出1到10000之间的所有素数 -
夷狮活血: C语言程序如下: #include<stdio.h> int main() { int i,j,k=0; for(i=2;i<10000;i++) { for(j=2;j*j<=i;j++) if(i%j==0) break; if(j*j>i) { printf("%d ",i); k++; if(k%5==0) printf("\n"); } } } 扩展资料: C语言判断素数的思路 思路1:因此判断一个整数m是否...

东阳市18760279887: C语言求助: 从键盘输入任意一个整数n,编程计算并输出1~n之间所有素数之和 要求: 使用模块化思想编程 -
夷狮活血: 我手机回答的:For套for外面的循环n次,里面的循环次数与外面正在循环的相同,也就是说,外面循环到10了,里面的循环次数就要小于等于10,然后在里面的For,用10和计数器求余,用If判断输出就行了

东阳市18760279887: C语言:编写函数程序,计算正整数 n1~n2 之间所有素数之和. -
夷狮活血: 你的素数判断函数有问题,既然你想返回1表示是素数,返回0表示不是素数,那么t的取值就反了. 另外,循环过程中只要有一次取余为0,表示可以整除这个k,即表示该数不是素数,可以直接跳出循环. int sushu(int i) {int t=1,k;float j;for(k=2;k<i;k++){j=i%k;if(j==0){t=0;break;}}return(t); }

东阳市18760279887: c语言程序计算1到n之间所有自然数之和 -
夷狮活血: int sum1_n(int n) { int sum = 0; for(int i=1; i<=n; i++) sum += i; return sum; }

东阳市18760279887: c语言:从键盘任意输入一个整数n,编程计算并输出1 - n之间的所有素数之和 -
夷狮活血: 你的程序中 判断素数并加和的部分有问题 在你的基础上修改如下 PS:main不需要改动 # include int SumPrime(int n) { int i; int k; int sum=0; for(i=2;i<=n;++i ) { for(k=2;k { if(i%k==0) break; } if(k == i) sum+= k; } return sum; } int main (void) { int n; int ...

东阳市18760279887: 用C语言怎样计算1到N之间的质数的和 -
夷狮活血: 思路:你需要两个函数来做.一个判断是1至N中的数哪些是质数,另一个是求和函数把是的加在一块.#include<stdio.h>#include<math.h> int prime(int m); int sum_prime(int n); int main() { int n=0; printf("请输入N:"); scanf("%d",&n); printf...

东阳市18760279887: 怎样用c语言输出1~n间素数的个数 -
夷狮活血: 楼主知道素数的含义吗?每一个程序都有算法,算法知道了程序就好写了给你算法,这样跟你说如果1-n直接的数能被2,3,4,,,,sqrt(n)整除就不是素数就结束算法,不能除尽就是素数,可以用while这个循环语句,中间加上break语句,不是很难,先弄懂怎么判断一个数是素数的算法,就好写了,就这样,我是菜鸟帮你只有这么多

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网