实际上只要试除到,就已经可以说明x是否为素数了。 这是因为如果小于等于的数都不能除尽×,则大于的数也 不可能除尽×。试除到,可以减少循环次数,提高程序的 运行效率。 程序代码如下: #include "math.h" main() { int i x,yes,a; printf("Enter integer number ") scanf ("Ood",&x);
实际上只要试除到,就已经可以说明x是否为素数了。 这是因为如果小于等于的数都不能除尽x,则大于的数也 不可能除尽x。试除到,可以减少循环次数,提高程序的 运行效率。 程序代码如下: #include "math.h" main( ) { int i, x, yes, a; printf("Enter integer number : "); scanf ("%d",&x);
yes=1; i=2出 a=(int)sqrt ((double)x); while(yes &&i<=a) if(x%i==0) yes=0; i++ } printf("Ood ",x); if yes) printf("YES\n"); else printf("NO\n");
yes=1; i=2; a=(int)sqrt ( (double) x); while( yes && i<=a) { if(x%i== 0) yes=0; i++ ; } printf("%d ",x); if ( yes ) printf("YES\n"); else printf("NO\n"); }
当x=2时,因i的初值2大于a,while循环根本不执行,yes 仍保持为1,输出的素数2;当x>2时,进入循环,若x为 素数,yes的值不变,仍为1,若×能被2~的某个数整除, 则x不是素数,使yes的值变为0,并且立即退出循环。退 出循环后,f的语句判断yes的值为1时,输出YES,否则 输出NO
当x=2时,因i的初值2大于a,while循环根本不执行,yes 仍保持为1,输出的素数2;当x>2时,进入循环,若x为 素数,yes的值不变,仍为1,若x能被2~的某个数整除, 则x不是素数,使yes的值变为0,并且立即退出循环。退 出循环后,if的语句判断yes的值为1时,输出YES,否则 输出NO
3)利用迭代公式再求出一个新的x1值,也就是用新的x0又 求出了一个新的平方根值x1,此值将更趋近真正的平方 根值。 (4)比较前后两次所求的平方根值x0和x1,若它们之间的 误差小于或等于指定的10-5,则认为x1就是a的平方根 值,去执行步骤(5);若它们之间的误差大于10-5,则 再转去执行步骤(2),即继续循环进行迭代。 (5)输出a的平方根值
3)利用迭代公式再求出一个新的x1值,也就是用新的x0又 求出了一个新的平方根值x1,此值将更趋近真正的平方 根值。 (4)比较前后两次所求的平方根值x0和x1,若它们之间的 误差小于或等于指定的10-5,则认为x1就是a的平方根 值,去执行步骤(5);若它们之间的误差大于10-5,则 再转去执行步骤(2),即继续循环进行迭代。 (5)输出a的平方根值
程序如下: #include "math.h" main() float a,x0,x1; printf("\Input a ") scanf("O/of",&a); if(a<0) printf("error!\n"); /*不能求负数的平方根*/ else {x0=a/2;
程序如下: #include "math.h" main( ) { float a, x0,x1 ; printf("\Input a : "); scanf("%f",&a); if(a<0) printf("error!\n"); /*不能求负数的平方根*/ else { x0=a/2;