www.fltk.net > 用C++编写一个函数:int isprimE(int n)用于判断一个整数是否为素数,如果是就返回1...

用C++编写一个函数:int isprimE(int n)用于判断一个整数是否为素数,如果是就返回1...

int isprime(int n) { int step=(n%2==0)?1:2; int i=2; while(i<n) { if(n%i == 0)return 0; i+=step; } return 1; }

#include using namespace std; int isPrime(int n) { for(int i = 2; i if(n % i == 0) return 0; return 1; } int main() { int f = 0; for(int i = 300; i if(isPrime(i)) cout return 0; }

应该是因为使用了break语句,作者想来想去就写出来这种神码了. 不用管它,你理解的是对的,它的代码改一下 可以简单些.如下! 没来来 0x30吧玩 int isprime(int n) int i; for(i=2;i<=n-1;i++) if(n%i==0) break; if(i<n)return 0; else return 1; /* 不如直接写成 for (i=2; i<=n-1; i++) { if (n%i==0) return 0;} return 1; */ }

将这里的标志位flag改为flag=0;这样 是素数返回0执行printf(”n%d is not prime.n”,n); 如果flag的值保持不变 执行printf(”n%d is prime.n”,n);

函数:int isprime(int n){ if(n<=2) return 1; int i; for(i=2;i<n/2;i++){ if(n%i==0) return 0; } return 1; }

#include "stdio.h" int isprime(int a) { int j; for(j=2;j<a;j++) if(a%j==0) return 0; else return 1; } void main() { int x,y; printf("请输入一个整数:"); scanf("%d",&x); y=isprime(x); if(y==0) printf("%d不是素数\n",x); else printf("%d是素数\n",x); } 由于问题不完整,不知是不是你要的答案.或许你可以参考一下

改过来了:#include<stdio.h>#include<math.h>void main(){ int isprime(int m); int n; scanf("%d",&n); if(isprime(n)) printf("%d is a prime number\n",n); else printf("%d is NOT a prime number\n",n);}int isprime(int m){ int i,k; k=(int)sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>k) return 1; else return 0;}

int isprime(int n) { int i; for(i=2;i<=sqrt(n);i++) { if(n%i==0) return 0; } return 1; } 解释:我把你的这个定义函数编排好看一点,问题就很明显了:出for循环后,经过这句 return 1;后,不管前面返回什么,最后函数返回的都是1,这就导致了判断的

我要提问 用c 编写一个函数:int isprime(int n)用于判断一个整数是否为素数,如果是就返回1,否则返回0. 匿名 分享到微博 提交回答 1 问: C语言的一个简单编程问题 答: int myfunc(int x) /* 参数为要

相关搜索:

网站地图

All rights reserved Powered by www.fltk.net

copyright ©right 2010-2021。
www.fltk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com