zoukankan      html  css  js  c++  java
  • 求素数或者素数因子

    学完C++写的求素数的代码:

    求指定范围内的素数 综合使用循环语句.cpp

    #include<iostream>
    #include<cmath>
    #include <cstdlib>
    using namespace std;
    int main()
    {   int i=0,m=0,k=0,j=0;
        int t=0,n=0;
        //指定下限
        cout<<"Please enter lower limit of search ranges: ";
        cin>>t;
        //指定上限
        cout<<"Please enter upper limit of search ranges: ";
        cin>>n;
        cout<<"The results are: "<<endl;
        if(t>n)
            cout<<"Sorry,your lower limit number is bigger than upper limit number! "<<endl;
        else
        {   //判断否为素数,判断依据在t-n之间没有可以被整除的数
            for(m=t;m<=n;m++)
            {   k=int(sqrt(double(m)));
                i=2;
                while(m%i&&i<=k) i++;
                if(i>k&&m!=1)
                {    cout<<m<<"  ";
                     j++;
                     if(j%10==0) cout<<"
    ";
                }
            }
            cout<<"
    Total number : "<<j<<endl;
        }
        system("pause");
        main();
    }

    用该方法求一个整数的素数因子

     1 #include <iostream>
     2 #include <cmath>
     3 #include <cstdlib>
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     int answer=0;
     9     cin >> answer;
    10     int  m = answer; //用输入的数初始化m,防止原来的数丢失
    11     //因为因子不会大于m/2,在2~m/2之间找因子
    12     for(int i=2;i <= answer / 2;i++)
    13     {
    14         if(m%i==0)
    15         {
    16             bool b=true;
    17             //判断数i是否为素数,判断依据在2~√i 之间没有可以被整除的数
    18             for(int j=2;j <= sqrt((double)i);j++)
    19                 //如果有在2~√i 之间有可以被i整除的数则排除该数
    20                 if(i % j ==0)
    21                     b = false;
    22             //在上一个检查过程中没有一个在2~√i 之间有可以被i整除的数则该数是素数
    23             if(b == true)
    24                 cout<<i<<" ";
    25         }
    26     }
    27     cout<<endl;
    28     system("pause");
    29     main();
    30 }

    在java中

     1 import javax.swing.JOptionPane;
     2 public class chapter1 {
     3     public static void main(String[] args) {
     4         // TODO Auto-generated method stub
     5         String input = JOptionPane.showInputDialog(null, "Please enter a integer:" ," ",JOptionPane.INFORMATION_MESSAGE);
     6         String text = "";
     7         if(input.length()==0)
     8             JOptionPane.showMessageDialog(null, "Please enter a number","Error",JOptionPane.ERROR_MESSAGE);
     9         else{
    10             int answer=Integer.parseInt(input);
    11             int  m=answer; //用输入的数初始化m,防止原来的数丢失
    12             //因为因子不会大于m/2,在2~m/2之间找因子
    13             for(int i=2;i <= answer / 2;i++) {
    14                 boolean b=true;
    15                 //判断数i是否为素数
    16                 for(int j=2;j <= Math.pow( (double)i, 0.5);j++)
    17                     //如果有在2~√i 之间有可以被i整除的数则排除该数
    18                     if(i % j ==0)
    19                         b = false;
    20                 //在上一个检查过程中没有一个在2~√i 之间有可以被i整除的数则该数是素数
    21                 if(b == true) {
    22                     //检出因子并存入text
    23                     while(m % i == 0 ) {
    24                         text += i + " ";
    25                         m=m / i;
    26                     }
    27                 }
    28             }
    29             if(text.length()==0)
    30                 text="Sorry,the number you enter doesn't have factor !";
    31             JOptionPane.showMessageDialog(null,text);
    32         }
    33     }
    34 }

      今天九天突然问到了,写下来,以后参考一下。其实总结起来,这几个都是围绕着一个算法来的。

  • 相关阅读:
    hdu5666 BestCoder Round #80
    hdu5558 后缀数组
    jQuery backgroundColor的animate效果
    jQuery 效果函数
    jQuery 事件
    jQuery 选择器
    SQL按照指定顺序对字段进行排序
    SQL union和union all的区别
    SQL表值函数和标量值函数的区别
    JavaScript Cookies
  • 原文地址:https://www.cnblogs.com/brock-1993/p/3400676.html
Copyright © 2011-2022 走看看