从键盘任意输入一个整数n,编程计算并输出1~n之间的所有素数之和 我编的这个程序怎么错了(C语言)

#include<stdio.h>
main()
{
int n,sum=0,i,m=0,j;
printf("Input n:");
scanf("%d",&n);
if(n==1) sum=0;
else if(n==2) sum=2;
else {
for(i=3;i<=n;i++){
for(j=2;j<i;j++){
if(i%j==0) m++;
}
if(m==0) sum=sum+i;
}
sum=sum+2;
}
printf("sum = %d\n",sum);
}

#include&lt;stdio.h&gt;

int main()

{

int n,i,j,t,l;

int sum=0;

printf("请输入一个大于2的整数:");

scanf("%d",&n);

l=n;

for(;n&gt;=2;n--)

{

for(i=2;i&lt;n;i++)

{

if(n%i!=0)//判断其为素数

t=1;

else

{

t=2;

break;

}

}

if(t==1)

{

sum+=n;

//printf("%d",n);//输出1-n之间的所有素数

}

}

printf("1-%d之间的所有素数和为:%d\n",l,sum);

return 0;

}

运行如下:

以15为例:

因为:1-15之间的素数有13、11、7、5、3、2

所以:13+11+7+5+3+2=41

扩展资料:

用法:

1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。

格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。

要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。

2、printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-03-24

#include<stdio.h>

main()

{

int n,sum=0,i,m=0,j;

printf("Input n:");

scanf("%d",&n);

if(n==1) sum=0;

else if(n==2) sum=2;

else {

sum=2;

for(i=3;i<=n;i+=2){

m=1;

for(j=2;j<i;j++){

if(i%j==0) {m=0;break;}

}

if(m) sum=sum+i;

}

}

printf("sum = %d\n",sum);

}

本回答被网友采纳
第2个回答  2017-03-24
在for(j=2;j<i;j++)前加一句m=0;试试……
第3个回答  2018-05-28
(我指的是最佳答案的那位)如果按你这样做,那么当n为负数的时候,就无法正确得出答案了,如n=-12时,输出变成了-2,显然错误;应该在if的后面再加入一个else if(n<0) sum=0;

从键盘任意输入一个整数n,编程计算并输出1~n之间的所有素数之和...
{ int n,i,j,t,l;int sum=0;printf("请输入一个大于2的整数:");scanf("%d",&n);l=n;for(;n>=2;n--){ for(i=2;i<n;i++){ if(n%i!=0)\/\/判断其为素数 t=1;else { t=2;break;} } if(t==1){ sum+=n;\/\/printf("%d",n);\/\/输出1-n之间的所有素数 } } pri...

C语言从键盘任意输入一个整数n,编程计算并输出1~n之间的所有素数之和...
{ int n,i,j,t,l;int sum=0;printf("请输入一个大于2的整数:");scanf("%d",&n);l=n;for(;n>=2;n--){ for(i=2;i<n;i++){ if(n%i!=0)\/\/判断其为素数 t=1;else { t=2;break;} } if(t==1){ sum+=n;\/\/printf("%d ",n);\/\/输出1-n之间的所有素数 } } p...

输入一个整数n,编程计算并输出1到n之间的所有素输之和
include<stdio.h>void main() { int n,i,j,b,s; scanf("%d",&n); for ( i=1,s=0;i<=n;i++ ) { for ( j=2,b=1;j<=i\/2;j++ ) if ( i%j==0 ) { b=0; break; } if ( b ) s+=i; } printf("%d\\n",s);} ...

C语言求助 从键盘输入任意一个整数n
要解决的问题是编写一个C语言程序,该程序可以从键盘输入任意一个整数n,并计算从1到n之间的所有素数之和。首先,需要包含头文件stdio.h和math.h。stdio.h提供输入输出功能,math.h提供数学函数。定义一个函数ss(int n),用于检查n是否为素数。如果是素数则返回1,否则返回0。素数的定义是只有1和它...

编程c++输入一个整数n,输出1—n之间所有奇数的和。
intsum=0;printf("请输入一个大于2的整数:");scanf("%d",&n);l=n;for(;n>=2;n--){ for(i=2;i<n;i++){ if(n%i!=0)\/\/判断其为素数 t=1;else { t=2;break;} } if(t==1){ sum+=n;\/\/printf("%d",n);\/\/输出1-n之间的所有素数 } } printf("1-%d之间的所有素数...

...编程计算并输出1~n之间的所有素数之和S.要求判断素数和求和分别...
include<math.h> int s=0;void sum1(int n){s+=n;} int isprime(int n){int i;for(i=2;i<=sqrt(n);i++)if(n%i==0)return 0;sum1(n);} int main(){int i,n;scanf("%d",&n);for(i=2;i<=n;i++)isprime(i);printf("1~%d之间所有素数的和=%d ",n,s);return 0...

使用函数调用从键盘输入一个整数n,并输出1-n所有素数!
另一个算法是从2~n中依次删除2,3,……的倍数(如果这个数已经被删除,就不用考虑了。比如4在删除2的倍数时被删除了,因此删除3的倍数后不考虑4,直接删除5的倍数),那么剩下的就是素数。删除m的倍数的时间复杂度是O(n\/m),因此这种算法的时间复杂度是O(n(1+1\/2+...+1\/n))=O(nlog n...

从键盘输入一个数num,打印出从1到num的所有素数,并计算和(用linux 系...
flag=1 # 素数表示(其中 1 表示是,0 表示否)sum=0 # 用来存储素数之和 DEFINE FUNCTIONS HERE \/ 函数名称:is_prime()函数功能:测试一个数是否为素数 \/ function is_prime() { N=$1 flag=1 for ((i=2; i<(N\/2+1); i++)) { ((N%i))if [ $? -ne 0 ]; then f...

从键盘上输入任意一个整数n,计算1到n的和。 输入 从键盘输入任意整数n...
include <stdio.h> void main(){ int n;printf("请输入一个整数n=");scanf("%d",&n);int i=1;int sum=0;while(i<=n){ sum=sum+i;i++;} printf("从1到%d的和为%d\\n",n,sum);} 已经调试,成功输出,请采纳 有图有真相 ...

2、从键盘输入一个整数n(要求n在100和1000之间),计算并输出整数n的所有...
} } return 0;} 首先,使用 printf 函数提示用户输入一个整数 n,并使用 scanf 函数从键盘输入这个整数。然后,使用 while 循环检查 n 是否在 100 到 1000 之间,如果不在这个范围内,就提示用户重新输入一个整数。接下来,使用 for 循环遍历 1 到 n 之间的所有整数,判断它们是否是 n 的因子。

相似回答