c语言求素数和
Ⅰ 用c语言 求素数之和(即求出素数并相加)
//函数isPrime判断参数num是否是素数
int isPrime(int num) {
int i;
for(i=2;i<=i/2;k++)
{
if(num%i==0) {
return 0;//num不是素数
}
}
return 1; //num是素数
}
//main函数,进行测试
void main(){
int i;
int primeSum=0;
for(i=2;i<=100;i++) { //此处修改求多大数范围之内的素数之和
if(1==isPrime(i)) {
primeSum+=i;
}
}
printf("\n100以内的所有素数之和为:%d\n",primeSum);
}
Ⅱ C语言求质数之和
#include<stdio.h>
#include<math.h>
int IsPrime(int x)
{
int i;
for (i = 2; i <= sqrt(x); i++)
{
if ((x % i)==0)
return 0;
}
return 1;
}
int sumPrime(int n){
int m,sum =0;
for(m = 2;m<=n;m++){
if(IsPrime(m) == 1)
sum+=m;
}
return sum;
}
int main(void){
int n;
printf("请输入一个正整数n:\n");
scanf("%d",&n);
printf("1 - n 之间的质数和是:%d\n",sumPrime(n));
}
Ⅲ c语言中如何求素数
你想下假如对8取余8/2==4,5以后的数字能整除8吗,为了提高效率,只要到4就行了,其实你理解错了,哪是这一句是判断方法啊,
Ⅳ c语言求素数的算法
根据素数的性质,代码设计如下:
设计一:判断n是否能被1~n-1整除,不能整除为素数
#include<stdio.h>
int main()
{
int i, n;
scanf("%d", &n);
for (i = 2; i < n ; i++)
{
if (n%i == 0)
break;
}
if (i < n) printf("This is not a prime.");
else printf("This is a prime.");
return 0;
}
设计二:判断n是否能被2~√n间的整数整除,不能整除为素数
#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
double k;
scanf("%d", &n);
k = sqrt(n);
for (i = 2; i <= k;i++)
{
if (n%i == 0) break;
}
if (i <=k) printf("This is not a prime.");
else printf("This is a prime");
return 0;
}
(4)c语言求素数和扩展阅读:
1.素数的定义是只能被1和他本身整除,1不是素数.因此要判断一个数是否为素数.就要判断它能不能被比他小的所有素数整除,这是一个算法.(写到算法时,我只能写出用它除以比他小的所有数,造成运算速度低下)
2.如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。由此可以得到一个法2较快的素数判断算法
Ⅳ (c语言)求素数和
你s=s+x;
放的位置不对,应该这样放:
#include
void
main()
{
int
x,n=10,i,s=0;
for(x=3;x<=n;x++)
{
for(i=2;i
=x)
{
printf("%d+",x);
s=s+x;
}
}
printf("\b=%d\n",s);
}
补充:
在用外层的for计算下一个的时候,要把内层for判断出来的素数累加起来啊
否则,计算到下一个的时候,前一个就丢了啊
所以,累加的那句代码,应该在外层for循环的里面,内存for循环的外面(后面)啊
Ⅵ c语言使用函数求素数和
您好,很高兴回答您的问题。
对于您的这个问题,有两个方面的知识点需要掌握,一是素数的判断标准,我们知道只能被1和数本身整除的数叫素数,具体实践时就要用到循环结构;而是函数的调用,要清楚调用函数的结构和使用方法,才能用好调用。
以上两个问题解决了,那么这个程序就可以实现功能了。还有关键的一点就是您没有给出具体的范围,也就是求哪个范围内的素数之和呢,没有这个范围,也就没有办法求出和了。
Ⅶ C语言求素数代码
方法有2个:
1、判断n是否能被2~√n间的整数整除
#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
double k;
scanf("%d", &n);
k = sqrt(n);
for (i = 2; i <= k;i++)
{
if (n%i == 0) break;
}
if (i <=k) printf("This is not a prime.");
else printf("This is a prime");
return 0;
}
(7)c语言求素数和扩展阅读:
C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数。因此,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。
判断语句(选择结构):
if 语句:“如果”语句;if—else 语句:“若…(则)…否则…”语句;switch 语句:“切换”语句;switch—case:“切换—情况”语句。
循环语句(循环结构):
while 语句:“当…”语句;do—while 语句:“做…当…(时候)”语句;for 语句:条件语句(即“(做)…为了…”语句)。
跳转语句(循环结构:是否循环):
goto 语句:“转舵”语句,也称“跳转”语句;break 语句:“中断”(循环)语句,即结束整个循环;continue 语句:“继续”语句(结束本次循环,继续下一次循环);return 语句:“返回”语句。
需要说明的是:
1、一个C语言源程序可以由一个或多个源文件组成。
2、每个源文件可由一个或多个函数组成。
3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。
4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。
5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。(结构体、联合体、枚举型的声明的“}”后要加“ ;”。)
6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
书写规则
1、一个说明或一个语句占一行。
2、用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。
3、低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。
Ⅷ c语言求素数和
思想很好
但是在内部循环判断之类的出错了
呵呵,内部if(i%j==0) break;这句在你到达j==的判断之前i时就跳出了内部for
下面的sum增加不执行了
呵呵
#include <stdio.h>
int main(void)
{
int i = 1;
int j;
int sum = 0;
while (++i <= 30)
{
j = 1;
while (++j <= i)
{
if (i%j == 0)
{
sum += i;
break;
}
}
}
printf("Sum = %d\n",sum);
return 0;
}