码迷,mamicode.com
首页 > 编程语言 > 详细

基础数论算法

时间:2015-03-05 23:36:48      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

  • 最大公约数 
 1 int gcd(int a,int b)
 2 {
 3     int temp;
 4     while(b)
 5     {
 6         temp = b;
 7         b = a%b;
 8         a = b;
 9     }
10 
11 return a; 12 }
  • 最小公倍数
1 int lcm(int a,int b)
2 {
3     return a*b/gcd(a,b);
4 }
  • 素数

    判断n是否为素数

1 bool prime(int n)
2 {
3     for(int i=0; i<=sqrt(n); i++)
4     {
5         if(n%i==0) return false;
6     }
7     return true;
8 }

    判断n以内的素数:素数筛法

 1 void prime()
 2 {
 3     int prime[n+1];
 4     memset(prime,0,sizeof(prime));
 5 
 6     prime[1]=1;
 7     for(int i=2; i<=n; i+=2)
 8         prime[i]=1;
 9 
10     for(int i=3; i<=n; i+=2)
11         for(int j=i; j<=n; j+=i)
12             prime[j]=1;
13 }

 

基础数论算法

标签:

原文地址:http://www.cnblogs.com/leeshine/p/4316842.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!