c语言求1-1000内素数问题

作者&投稿:牧矩 (若有异议请与网页底部的电邮联系)
C语言:输出1-1000素数;~

函数f有问题啊,如果是素数会返回,但不是素数的话,没有返回值啊。
建议
修改如下:
1. 函数f中
if(j>=n)
return n;
else
return 0;
2. 函数main的循环中
int result = f(i);
if( result )
printf("%5d",result);

循环嵌套,外层循环是从1-1000的数字i(1排除,这你应该明白),内层是对数字i的素数判断。

素数:除了1和它本身外没有别的因子。也可以理解为:除了1和它本身,其他数来除它余数都不是0。

所以内层循环用从2开始到i的平方根(取整)依次求余,因为到了平方根以后,再增加除数,得到的商是小于平方根的,等于以前取过的除数。所以平方根以后不用再算了。

如果有=0的余数(if(i%j ==0)),说明正在判断的数字不是素数,用break语句退出内层循环;如果没有=0的余数,开关数w不归零,if(w)后的语句执行,计数器n自加一次(找到一个素数),并打印当前检验数i。

打印前有一个if判断,如果计数器n满整10(能够被10整除)就换行,也就是说这个素数表每行10个数。不换行数字键隔一个列表间隔(等于tab)。

看看你有多粗心!!!!
if(fun(i));//看这里,看到什么没有,你多了一个分号
{
printf("%d ",i);
line++;
}

看到没有,if(fun(i));由于多了这个分号,所以不管fun(i)返回值是0还是1,都会执行下面的printf函数,所以就会出现输出全部的1000个数!!!

//program4.ccp
#include <iomanip.h>
void main()
{

const int n=1000;
int i=2,j,count=0;
int sieve[n+1];
for (j=1;j<n+1;j++) sieve[j]=j;
while (i<n+1)
{cout<<setw(5)<<sieve[i];
count++;
if(count%15==0 ) cout<<endl;
for(j=i;j<n+1;j+=i)
sieve[j]=1;
while(sieve[i]==1)i++;
}
}


C语言编程:求1到1000的奇数和
求1到1000的奇数和的C语言编程方法有以下几种:使用while循环,定义一个变量n从1开始递增,每次判断n是否为奇数,如果是则累加到sum变量中,直到n大于1000为止。使用for循环,定义一个变量n从1开始递增2,每次将n累加到sum变量中,直到n大于1000为止。使用递归函数,定义一个函数odd_sum(n),返回1到n...

如何用c语言编程找出1000以内的所有完数。
编程找出1000以内的所有完数,我们可以使用一个循环来遍历1到1000之间的每个数字,然后使用另一个循环来遍历该数字的所有因子(除了它本身),并检查它们的和是否等于该数字本身。如果是,则该数字是一个完数,我们可以将其打印出来。完数指的是一个数恰好等于它的因子之和(不包括它本身),比如6就是一...

c语言编程题"编程求1-1000之间的所有完数。完数:该数所有的因子(除去本 ...
include<stdio.h>int main(){int i = 0, j = 0, res;for (i = 1; i <= 1000; i++){res = 0;for (j = 1; j < i; j++){if (i % j == 0) res += j;}if (res == i) printf("%d ", i);}printf("\\n");return 0;} ...

请用程序设计语言编写一个计算1~1000之间所有偶数和的程序?
int i,sum;for(i=2,sum=0;i<1001;i=i++)if(i%2==0){sum=sum+i;} printf("1~1000之间所有偶数的和:");printf("sum=%d",sum);} for循环语句由循环判定条件和循环体组成,它是C语言中使用最为灵活的循环语句。for循环不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定的...

C语言,求1-1000所有奇数的和,偶数的和,倒数的和,c用while循环
include <stdio.h>int main(){float i,js,os,ds;i=1;js=0;os=0;ds=0;while(i<=1000){if(int(i)%2==0)\/\/偶数os+=i;else\/\/奇数js+=i;\/\/倒数 ds=ds+1\/i;i++;}printf("奇数和:%.0f\\n偶数和:%0.0f\\n倒数和:%f\\n",js,os,ds); return 0;} ...

用C语言,求1-1000之和,并输出结果。
include<stdio.h> void main(){int i=1;long sum=0;while(i<=1000){sum=sum+i;i++;} printf("%ld",sum);getch();}

编写一个C语言程序,求出1至1000之间满足“用3除余2;用5除余3;用7除...
3n1 = 5n1 + 13n1 = 7n3 的时候,你可以看到, n1 必须是7的整数倍,这样计算的时候循环次数将大大降低。现在看不懂不要急 本回答由网友推荐 举报| 答案纠错 | 评论 1 5 其他回答 #include "stdio.h"int main(){ int i,j=0; for(i=1;i<=1000;i++) { if(i%3==2&&i%5==3&&i%7==2...

C语言求1至1000的和
include<stdio.h>int main(){int i,s=0; for(i=1;i<1001;i++) s+=i; printf("%d\\n",s); return 0;}

编写一个C语言程序,求出1至1000之间满足“用3除余2;用5除余3;用7除...
int main(){ int i,j=0;for(i=1;i<=1000;i++){ if(i%3==2&&i%5==3&&i%7==2){ printf("%d ",i);j++;if (j%5==0){printf("\\n");} } } return 0;} C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于...

c语言设计 输出1-1000以内,十位数是5的所有整数,每隔5个换一行?_百度...
解决这个问题,大致有两种思路。第一种是采用最笨的办法,穷举1到1千的所有整数,如果她的十位数是五就输出这个数,并统计个数,如果满五个就换行。效率比较高的一种算法是,从5到100,每次增加五,然后把这个数乘以十以后,再加上一个个位数进行输出,同时也进行每五个换行的控制。

鄂城区13382567497: C语言,找1到1000的素数怎么做呢 -
褚叔欧智: #include<stdio.h> int main() {char num[1001];int i,n;memset(num,0x00,sizeof(num));for(n=2;n<32;n++)for(i=2;i*n<1001;i++)num[i*n]=1;printf("1到1000素数为:\n");for(i=2;i<1001;i++)if(num[i]==0)printf("%d\n",i);return 0; } 大概和素数表对照了一下,最后几个数是对的.

鄂城区13382567497: 求助c语言高手查找1 - 1000之间的所有素数.素数是指只能被1和它本身整数的数.要求:1、编写一个函数isPrime,接收一个整数,返回是否为素数. 2、在... -
褚叔欧智:[答案] #include main() { int i,j,flag=1; for(i=2;i {flag=1; for(j=2;j if(i%j==0) flag=0; if(flag==1) printf("%d,",i); } } //判断是否为素数

鄂城区13382567497: 编写一个程序,输出1~1000之内所有的素数(注意:素数即质数)及个数(C语言) -
褚叔欧智:[答案] 刚好在做C++,顺便帮你做下, #include main() { int a,i,sum=0; printf("素数:\n"); for (a=1;a

鄂城区13382567497: C语言:输出1 - 1000素数; -
褚叔欧智: 函数f有问题啊,如果是素数会返回,但不是素数的话,没有返回值啊. 建议 修改如下: 1. 函数f中 if(j>=n)return n; elsereturn 0; 2. 函数main的循环中int result = f(i);if( result )printf("%5d",result);

鄂城区13382567497: c语言.编写函数.求出1000以内的所以素数 -
褚叔欧智: 先个判断素数的函数,循环至1000,调用这个判断素数的函数,输出结果~~~~~~~~~~~~

鄂城区13382567497: 怎么用C语言求一千以内的素数? -
褚叔欧智: #include<stdio.h> int main(void) { int x; int y; int count=0; for(x=1;x<1000;x++) { y=x; if(y>1) { while(y>=1) { if(x%y==0) count++; y--; } if(y==0&&count==2) { printf("%d\n",x); } count=0; } else printf("1\n"); } return 0; }

鄂城区13382567497: c语言求1000以内的素数和 -
褚叔欧智: #include <stdio.h> #define N 1000 int main(int argc, char *argv[]) {int i,j,sum,flage;for(i=2;i<N;i++n){flage=0;for(j=1;j<=i&&flage<=2;j++)if(i%j==0)flage++; if(flage==2)sum+=i;}printf("1000以内的素数和为:%d\n",sum); return 0; }

鄂城区13382567497: C语言编程题计算并输出1000以内最大的10个素数以及它们的和. 要求: (1)在程序内部加必要的注释.(2)由于偶数不是素数,可以不考虑对偶数的处理... -
褚叔欧智:[答案] #include int main() { int i,n,k = 0,sum = 0; int a[10],flag = 1; for(n = 999; n > 1 && k < 10; n -= 2) { flag = 1; for(i = 2; i * i <= n && flag; ++i) flag = n % i; if(flag) { a[k++] = n; sum += n; } } for(i = 0; i < k; ++i) printf("%d + ",a[i]); printf("\b\b= %d\n",...

鄂城区13382567497: C语言中怎么1到1000所有的质数 -
褚叔欧智: 1、缺一个#include"stdio.h";2、里面有汉语标点符号,如if (a%i==0)(这个是汉语的),for(a=2;a<=1000;a++)(;是汉语的)3、我的环境稍有不同,是devc++,修改粘贴如下:#include<conio.h>#include"stdio.h" int main() { int a,i; printf("素数:\n"); for(a=2;a<=1000;a++) { for (i=2;i<=(a-1);i++) {if(a%i==0) break;} if (i>=a) { printf("%d\n",a); } } getchar(); return 0; }

鄂城区13382567497: C语言输出100至1000间的素数 -
褚叔欧智: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25#include <cstdlib> #include <iostream> usingnamespacestd; intmain(intargc, char*argv[]) {inta,b;for(a=100;a<1000;a++){intist=0;for(b=2;b<a;b++){if(a%b==0){ist=1;...

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