• 用SQL求1到N的质数和


    今天在百度知道中,遇到了一位朋友求助:利用sql求1到1000的质数和。再说今天周五下午比较悠闲,我就在MSSQL 2008中写了出来,现在分享在博客中,下面直接贴代码:

    declare @num int --数值以内的质数和
    declare @sum int  --质数和
    set @num = 1000 --100以内的指数和
    set @sum =0  --质数总和
    if @num % 2 =0 --如果是偶数转为奇数进行运算  与下面的减2相对称
    begin
     set @num = @num -1   --如果是偶数就变为奇数
    end
    while @num >= 3  --2比较特殊 2即是质数又是合数
     begin
      declare @i int --变量
      declare @sqltNum int --对循环的数值开根号得到的数
      declare @val int  --变量 替换@num
      set @i = 2   --设置变量值
      set @val = @num  --赋值
      set @sqltNum =SQRT(@num) --对传入的数字开根
       while @i<=@sqltNum
       begin
        if @num % @i = 0
         begin
          set @val=0  --如果可以整除 设置@val为0, 与后面 @sum = @sum+@val对应
          break
         end
        else
         begin
          set @i+=1  --如果整除不了 那就让@i=@i+1,直到 @i>@sqltNum,都没有找出@num % @i = 0的数,那就是质数
          continue
         end
       end
      set @sum = @sum+@val
      set @num = @num -2 --质数都是奇数
     end
     select (@sum+2)  --2比较特殊 2即是质数又是合数,+2是因为是从3开始计算的

    如果谁有更好的方法也麻烦分享下哈,大家相互学习。

  • 相关阅读:
    array与xml转换实现(转)
    设计模式之: 策略模式
    设计模式之: 代理模式
    设计模式之: 状态模式
    dedecms分页
    dedecms导出csv文件
    假如项目中使用到了多 表查询,怎么办?
    git忽略某个文件夹
    git忽略某个文件
    无极限分类
  • 原文地址:https://www.cnblogs.com/chinese-sam/p/3494469.html
Copyright © 2020-2023  润新知