关于求素数的源代码

来源:互联网 发布:电子文档管理系统 php 编辑:程序博客网 时间:2024/05/22 00:14
 

/*
 2011年10月2日 15:38:11
 功能:让用户输入一个数值,求出从2 到 用户所输入数值直接的所有素数 和 素数的个数!!!
  
*/
# include <stdio.h>

bool IsPrime(int);
void ShowPrime(int);
void CountPrime(int);

//显示2 到 用户所输入数值 之间的所有素数
void ShowPrime(int n)
{
 int i;
 for(i=2; i<=n; ++i)
 {
  if( IsPrime(i) )
   printf("%d ", i);
 }
}
//显示2 到 用户所输入数值 之间的所有素数的个数
void CountPrime(int q)
{
 int i;
 int count = 0;
 for(i=2; i<=q; ++i)
 {
  if( IsPrime(i) )
  {
   count++;
  }
 }
  printf("%d ", count);
}

//判断用户所输入的数是不是素数
bool IsPrime(int m)
{
 int i;
 for(i=2; i<=m; ++i)
 {
  if(m%i == 0)
   break;
 } 

 /*对输入的数值m进行操作,m对 i 取余,当余数为0时,再进行判断,

当i的值和m的值相同,说明m 不能被 (2到m之间的数) 整除,所以它为质数。*/

 if(i == m)
  return true;
 else
  return false;

}
int main(void)
{
 int a;
 printf("请输入一个数:");
 scanf("%d", &a);
 printf("在 2 到 %d 之间质数是: ", a);
 ShowPrime(a);//调用函数
 printf("\n");
 printf("统计在 2 到 %d 之间质数的个数为: ", a);
 CountPrime(a);
//调用函数
 printf("\n");
 return 0;
}
/*
在Visual C++6.0中输出结果是:
_ _ _ _ _ _ _ _ _ _ _ _ _ _

请输入一个数:100
在 2 到 100 之间质数是: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
统计在 2 到 100 之间质数的个数为: 25
Press any key to continue
_ _ _ _ _ _ _ _ _ _ _ _ _ _
*/

原创粉丝点击