请教高手,质数与素数的问题!
判断一个数是否质数。如果是质数,返回1;否则返回0。请问质数的定义是怎么样的?质数和素数有什么区别?有高手会编此题吗?有的请指教,谢谢!
----------------解决方案--------------------------------------------------------
你可以定义它为整型,程序如下:
#include<stdio.h>
#include<math.h>
int fun(int x)
{ int i;
float k;
k=sqrt(x);
for(i=2;i<k;i++)
if(x%i==0) return(0);
else return(1);
}
main()
{ int a,c;
printf("请输入数据:\n");
scanf("%d",&a);
c=fun(a);
if(c==1)printf("%d是素数\n",a);
if(c==0)printf("%d不是素数\n",a);
}
----------------解决方案--------------------------------------------------------
好像你的程序有点问题,我输入不是素数的时候,没有反应,请楼上的再看看,谢谢!
----------------解决方案--------------------------------------------------------
这个程序有错误,我输入9,它也是说9也属于素数,9不属于啊!
[此贴子已经被作者于2005-4-23 0:41:16编辑过]
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <math.h>
int prime(int number)
{
int i;
int flag=1;
for(i=2;i<=sqrt(number);i++){
if(1==number%i){
flag=0;
break;
}
}
return flag;
}
void main()
{
int i,j;
scanf("%d",&i);
j=prime(i);
if(0==j)
printf("it's prime number");
else
printf("it isn't prime number");
}
----------------解决方案--------------------------------------------------------
谢谢指教,我也写出来了,不过我是用C++写的
#include <stdio.h> #include <math.h> int Prime(int);
void main() { int a; printf("请输入数据:\n"); scanf("%d",&a); printf("%d\n",Prime(a)); }
int Prime(int n) { int i,k; if(n==1) return 0; k=sqrt(n+1); for(i=2;i<=k;i++) if(n%i==0) return 0; return 1; } 可能我的数法比不上你们的,但也给大家看看
[此贴子已经被作者于2005-4-23 17:45:39编辑过]
----------------解决方案--------------------------------------------------------