C语言程序设计基础案例8.1
来源:互联网 发布:淘宝小二是什么意思 编辑:程序博客网 时间:2024/06/05 09:53
#define MAX_N 60000#define MAX_ITEM 7500#include <stdio.h>#include <math.h>int primes[MAX_ITEM]={0},numbers[MAX_N]={0};int gen_primes (int n,int *primes);/*生成质数表*/void gen_factors (int n,int m,int *primes,int *num);/*分解质因数,填入出现次数表*/void print (int m,int *primes,int *num);/*输出结果*/int main(){ int m,n; printf("please Enter N: "); scanf("%d",&n); if (n<2||n>MAX_N) { printf("N must be between 2 and %d\n",MAX_N); } else { m=gen_primes (n,primes); gen_factors (n,m,primes,numbers); print(m,primes,numbers); } return 0;}int gen_primes (int n,int *primes)/*生成质数表*/{ int x=0,k;int i,j;for (i=2;i<=n;i++)/*从2到n判断是否为质数*/{ k=(int)sqrt(i);/*求质数的通常算法*/ for (j=2;j<=k;j++){ if (i%j==0) break;}if (j>k){ primes[x]=i; x++;}}return x;/*返回质数个数*/}void gen_factors (int n,int m,int *primes,int *num)/*分解质因数,填入出现次数表*/{int a=1,i;for (i=1;i<=n;i++)/*求n!*/a=a*i;i=0;while (a>1){if (a%primes[i]==0){ a=a/primes[i];/*判断a的因子*/ num[i]++;}elsei++;}}void print (int m,int *primes,int *num)/*输出结果*/{ int i,j; for (i=0;i<m;i++) { if (num[i]>1) { if (i!=1) printf("%d^%d*",primes[i],num[i]); else printf("%d^%d",primes[i],num[i]); } else { if (i!=1) printf("*%d",primes[i]); else printf("%d",primes[i]); } }}
0 0
- C语言程序设计基础案例8.1
- C语言程序设计案例精编----万年历
- C语言程序设计案例精编----五子棋
- C语言程序设计案例精编----俄罗斯方块
- C语言程序设计案例精编----画图板
- C语言程序设计基础篇
- C语言程序设计 基础知识点
- 基础c语言程序设计2
- C语言程序设计(基础1)
- C语言程序设计(基础2)
- C语言程序设计(基础3)
- C语言程序设计案例精编----ping程序设计
- C语言程序设计案例精编----UDP程序设计
- C语言程序设计案例精编----职工管理系统
- C语言程序设计案例精编----电话薄管理系统
- C语言程序设计案例精编----推箱子
- C语言程序设计案例精编----文本编辑器
- C语言程序设计案例精编----电子时钟
- SpringMVC_Spring_MyBatis_Maven框架搭建Java Web项目
- java关于集合的遍历与增强for循环的使用
- 十六进制转八进制
- Q89:全局光照(Global Illumination)——Path Tracing(只用于间接光照)
- 选择排序法的实现与分析
- C语言程序设计基础案例8.1
- 简单聊聊TestNG中的并发
- HTML5基础加强css样式篇(css过度覆盖问题)(二十一)
- 隐式Intent使用细节及常用Intent收藏
- Microsoft Web Platform Installer添加安装源
- [LeetCode]First Missing Positive(Java)
- MTK GPIO 新增变量配置
- 1的个数 二进制
- CCF201604-1-折点计数