首页 > 其他 > 详细

因子与阶乘

时间:2014-03-23 13:58:59      阅读:452      评论:0      收藏:0      [点我收藏+]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <string.h><br>// 素数判定。注意:n不能太大
int is_prime(int n)
{ int i;
for( i = 2;i*i <= n;i++)
if(n % i == 0) return 0;
return 1;
} // 素数表
int prime[100], count = 0;
int main()
{ // n和各个素数的指数<br>int i, n,p[100];<br>// 构造素数表
for( i = 2;i <= 100;i++)
if(is_prime(i)) prime[count++] = i; // 把100以内的素数放在 prime数组里
while(scanf("%d",&n) == 1)
{ printf("%d !=",n);
memset(p,0,sizeof(p)); 初始化 数组P
int maxp = 0,j;
for( i=1;i<=n;i++)
{// 必须把i复制到变量m中,而不要在做除法时直接修改它<br> int m =i;
for(j = 0;j < count;j++)
 
while(m%prime[j] == 0)
{ m/=prime[j];
p[j]++;
if(j > maxp) maxp = j; // 更新最大素因子下标
}
}
// 只循环到最大下标
for(i = 0;i <= maxp;i++)
printf("%d",p[i]);
printf("\n");
}
return 0 ;
}

  一个求素数的函数   

1
2
3
4
5
6
int is_prime(int n)
{ int i;
for( i = 2;i*i <= n;i++)
if(n % i == 0) return 0;
return 1;
}   这一部分应该记住。之前有碰见过。( 一个数n 如果是合数,那么它的所有的因子不超过sqrt(n)-n  的开方)<br><br>

因子与阶乘,布布扣,bubuko.com

因子与阶乘

原文:http://www.cnblogs.com/joyclub/p/3618806.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!