c语言课程设计-素数探求

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计
学院班级设计人 __ 成绩 ____
一、题目:素数探求
二、目的与要求
1.目的:
(1)培养学生综合利用C语言进行程序设计的能力;
(2)熟悉函数设计、循环的控制方法及测试方法,理解模块化程序设计的优点和意义。

2.基本要求:
(1)要求用C编程语言实现算法,完成程序的设计,在VC++6.0 开发环境运行算法;
(2)用多个函数实现;
(3)源代码程序要求必要的注释。

3.创新要求
在基本要求达到后,可以进行创新设计,如优化人机界面、将输出结果存放在文件里等。

4.书写设计报告的要求
课程设计报告
1)课程设计题目、内容、要求。

2)总体设计(包含几大功能模块)。

3)详细设计(各功能模块的具体实现算法——流程图)
4)数据结构设计描述,各模块(函数)的功能介绍,参数说明等。

5)调试分析(包含各模块的测试用例,及测试结果。


6)总结(课程设计完成了哪些功能,还有哪些地方需要改进,及通过课程设计有何收获,调试程序的体会等)
三、设计方法和基本原理
1.问题描述:
从键盘任意输入一个整数m:
(1)若m不是素数,则对m进行质因数分解,并将m以质因数从小到大的顺序排列的乘积形式输出;否则输出“m 是质数!”。

例如:用户输入90,则程序输出为2*3*3*5。

(2)若m是素数,则按降序输出小于m的所有素数。

2.问题的解决方案:
根据问题的描述,可以按照要求的功能采用结构化的设计思想。

四、主要技术问题的描述
根据以上的分析,主要解决的技术问题在于:
素数的判断,单独用一个函数完成;两个问题分别用两个函数完成。

设计程序:
#include "stdio.h"
int isprime(int);
void f1(int);
void f2(int); /*函数说明语句*/
/*************************主函数***************************/
main()
{
int m;
printf("从键盘任意输入一个整数m:\n");
scanf("%d",&m);
if(isprime(m))
{
printf("%d是素数\n",m);
f1(m);
}
else
{
printf("%d不是素数\n可以进行质因数分解如下:\n",m);
f2(m);
}
}
/******************定义函数判断是否为素数******************/
int isprime(int a)
{
int i;
for(i=2;i<=a/2;i++)
if(a%i==0) return 0; /*a若能被某个数整除,即不是素数,返回0*/ return 1; /*a不能被2到a/2的任意数整除,返回1*/
}
/****************定义函数输出小于m的所有素数***************/ void f1(int b)
{
int i;
printf("小于%d的素数有: \n",b);
for(i=b-1;i>=2;i--)
{
if(isprime(i))
printf("%d ",i);
}
printf("\n");
}
/**************定义函数对m进行质因数分解*******************/ void f2(int n)
{
int i;
for(i=2;i<=n;i++)
while(n!=i)
{
if(n%i==0)
{
printf("%d*",i);
n=n/i;
}
else
break;
}
printf("%d",n);
printf("\n");
}。

相关文档
最新文档