题目要求输出1000以内的所有质数 然后每行8个 输出 我知道F()函数错了 但是怎么改呢? 如下 感激不尽

#include <stdio.h>
#include <math.h>
int f(int x);
void main ()
{
int i,j=0;
for (i=1;i<=1000;i++)
if(f(i)==1)
{ j++;
printf("%d ",i);
if(j%8==0) printf("\n");}
}
int f(int x)
{ int m;
for(m=2;m<=sqrt(x);)
if(x%m==0) return 0 ;

else return 1;
if(x==2||x==3) return 1;
}
忘了,for循环后面是应该有m++,但是结果却输出的全部是奇数,不是质数。。。。。。

仔细看了一下,撇开那个m++不谈,你的问题出在:
一进去就m=2的时候,就得到结果然后return 了,刚进循环,m=2的时候
if(x%m==0) return 0 ;
else return 1;
然后就出来了,m=3,4,5...根本没用到
*********************************
int f(int x)
{ int m;
if(x==2||x==3) return 1;
for(m=2;m<=sqrt(x);m++)
{ if(x%m==0)
return 0 ; //被整除了,就不是质数,直接返回0
else
continue; //没被整除就增加m继续看
}
return 1; //最后循环结束了还没被整除,就是质数了,返回1
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-13
if(x%m==0) return 0 ;
else return 1;
然后就出来了,m=3,4,5..int f(int x)
{ int m;
if(x==2||x==3) return 1;
for(m=2;m<=sqrt(x);m++)
{ if(x%m==0)
return 0 ; else
continue; }
return 1;

题目要求输出1000以内的所有质数 然后每行8个 输出 我知道F()函数错...
一进去就m=2的时候,就得到结果然后return 了,刚进循环,m=2的时候 if(x%m==0) return 0 ;else return 1;然后就出来了,m=3,4,5...根本没用到 int f(int x){ int m;if(x==2||x==3) return 1;for(m=2;m<=sqrt(x);m++){ if(x%m==0)return 0 ; \/\/被整除...

C语言:输出1000~2000之间的所有素数,每行输出8个,要求调用求素数函数...
include <stdio.h> int sushu(int n){ int i;for(i=2;i<n;i++){ if(n%i==0)return 0;} return 1;} int main (){ int n,m,j=0;for(n=1000;n<=2000;n++){ m=sushu(n);if(m==1){ printf("%d ",n);j++;if(j%8==0)printf("\\n");} } return 0;} ...

【oracle】定义一个Oracle存储过程,输出1~100之间的素数。
c_max:=200;--这里设置最大数,想要100这内就写100,想要1000之内就写1000 loop v_now:=2;--这里设置每一个数的初始被除数,从2开始 v_yes:=1;--设置初始参考数,1为素数,0为非素数,默认初始为1 if v_num<4 then dbms_output.put_line(v_num);--1到3都是素数,这里就不再判断了...

...是否是质数. 然后在主方法写输出1-100之间的所有质数.
public class $ { public static void main(String[] args) { for (int i = 1; i <= 100; i++) { if (isZhishu(i)) { System.out.println(i); } } } private static boolean isZhishu(int num) { if (num == 1) { return false; } in...

c语言,哪里错了?输出1000以内质数
i<=n-1;i++) \/\/不要改变n值 if(n%i==0) \/\/如果有因子则不是质数,返回0 return 0; \/\/函数不能作为变量接收数据,return 1; \/\/2到n-1都没有因子,返回是质数 } main(){ int n;for(n=2;n<=1000;n++){ if(fac(n))==1) \/\/==才是比较 printf("%d ",n)} } ...

编写Python程序:输出1000以内所有的素数,每行10个,并统计个数?_百度知 ...
for i in range(2, 1000):if isPrime(i):print(i, end=" ")count += 1 if count % 10 == 0:print()print("\\n共计%d个素数。" % count)程序中首先定义了一个名为isPrime的函数,用于判断一个数是否为素数。当n小于等于1时,直接返回False;当n大于1时,对于从2到n的平方根的所有数...

求问在EXCEL单元格中输出2—1000之间的所有质数,每行5个质数,怎么...
你在单元格中输入下面公式 =IF(SMALL(MOD(ROW(3:3),IF(ROW($2:$1000)<ROW(3:3),ROW($2:$1000),ROW(3:3)-1)),1)>0,ROW(3:3),"")然后按Ctrl+Shift+Enter 最后向下一直拖动到1000行 注意:求出来的数中不包含质数2 这个公式只针对1000以内的数有效,如果要扩大范围只要把公式中的...

JavaScript编写一个程序,要求输出1000~1200以内的全部素数(质数...
以下是输出1000~1200以内的全部素数(质数)的JavaScript程序:\/\/检查一个数是否为素数的函数 function isPrime(number) { if (number < 2) { return false;} for (let i = 2; i < number; i++) { if (number % i === 0) { return false;} } return true;} \/\/遍历1000~1200之间的...

在php中怎么用函数实现 输出1-100 中的质数(素数,只能被1和本身整除...
<?phpfor($i = 2; $i < 101; $i ) {$primes = 0;for($k = 1; $k <= $i; $k )if($i%$k === 0) $primes ;if($primes <= 2) \/\/ 能除以1和自身的整数(不包括0)echo "{$i}";} 【

使用VFP编写程序,要求输出0-100之间所有的素数
修改范围300为100,弃掉求和语句,就符合你的题目了。--- --- --- --- 素数即是质数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。程序中使用函数int(i\/j)是否整除,进行判别。同理也可使用mod(i\/j)=0。clear set talk off ?" 300以内的素数有...

相似回答
大家正在搜