当前位置: 代码迷 >> C语言 >> 请教高手,质数与素数的问题!
  详细解决方案

请教高手,质数与素数的问题!

热度:159   发布时间:2005-04-22 23:52:00.0
请教高手,质数与素数的问题!
判断一个数是否质数。如果是质数,返回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编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案