c语言作业素数探求实验题,c语言课程设计-素数探求.doc

编号:31

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");

}

3

展开阅读全文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值