首页 > 试题广场 >

编写一个程序,将小于n的所有质数找出来。

[问答题]
编写一个程序,将小于n的所有质数找出来。
#include <iostream>
#include <math.h>

using namespace std;

bool isprime(int num)
{
    for (int i=2; i<=sqrt(num); i++)
    {
        if (num%i==0)
        {
            return false;
            break;
        }
    }
    return true;
}
int main()
{
    int n;
    while(cin>>n)
    {
        for (int j=2; j<n-1; j++)
            if (isprime(j))
                cout << j << " ";
    }
    return 0;
}

发表于 2018-04-26 19:37:30 回复(0)
#include <iostream>
#include <cmath>
#include <vector>

using namespace std;

bool isprime(int x)
{
	if (x <= 1) return false;
	else if (x == 2) return true;

	for (int i = 2; i <= sqrt(x); ++i)
	{
		if (x % i == 0) return false;
	}

	return true;
}

vector<int> getAllPrimes(int n)
{
	vector<int> res;
	if (n < 2) return res;

	for (int i = 2; i < n; ++i)
	{
		if (isprime(i))
			res.push_back(i);
	}

	return res;
}
int main(void)
{
	int n;
	cin >> n;
	vector<int> prms = getAllPrimes(n);
	
	for (auto p : prms)
		cout << p << " ";
	cout << endl;

	return 0;
}

发表于 2016-01-29 19:43:41 回复(0)
//质数 对 小于自己的质数 求余,不等于0;且小于自己的质数 的范围在[2,sqat(n)]
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

vector<int> res;
vector<int> CalP(int n)
{     if(n<2)         return res;     res.push_back(2);     int i,j;     for(i=3;i<=n;++i)     {         for(j=0;j<res.size()&&res[j]<=sqrt(i);++j)         {             if(i%res[j]==0)                 break;         }         if(j==res.size()||res[j]>sqrt(i))             res.push_back(i);     }     return res;
}      int main()
{     int n=100;     CalP(n);     for(int i=0;i<res.size();++i)         cout<<res[i]<<endl;     return 0;
}
发表于 2018-01-10 00:00:28 回复(0)
#include <iostream>
#include <vector>
using namespace std;

int main(){
    int n = 30;
    if(n <= 2){
        cout<<"None.";
        return 0;
    }

    vector<int>res;
    res.push_back(2);
    int len = res.size();
    int i = res[len-1] + 1;
    bool isonly;
    for(;i <  n; ++i){
        isonly = true;
        for(int j = 0; j < len; ++j){
            if(res[j]*(i/res[j]) == i){
                isonly = false;
                break;
            }
        }
        if(isonly == true){
            res.push_back(i);
            len++;
        }
    }
    
    for(int k = 0; k < len; ++k){
        cout<<res[k]<<" ";
    }
}

发表于 2017-09-27 17:58:26 回复(0)
public void findPrime(int n) {
	boolean notPrime[] = new boolean[n + 1];
	for (int i = 2; i <= n; i++) {
		if (notPrime[i])
			continue;
		System.out.println(i);
		//当数为i的倍数时,标记为非质数
		for (int j = i + i; j <= n; j += i) {
			notPrime[j] = true;
		}
	}
}
发表于 2017-07-27 13:16:34 回复(0)
public class findZnum { public static void main(String[] args) { name(13); } public static void name(int n) { for (int i = n; i > 0; i--) { if (findNum(i)!=0) { System.out.println(i); } } } public static int findNum(int n) { boolean flag=true; if (n==1) { return 0; } if (n==2) { return 2; } for (int i = 2; i< n; i++) { if (n%i==0) { flag=false; break; } } if (flag) { return n; } return 0; } }
发表于 2017-02-15 10:41:16 回复(0)
function findN(n){
        var arr = new Array();
        if(n==1){
            return;
        }
        if(n==2){
            arr.push(1);
        }
        arr.push(1);
        arr.push(2);
        for(var i=3;i<n;i++){
            for(var j=2;j<i;j++){
                if(i%j==0){
                    break;
                }
              arr.push(i);
            }
        }
        var hash = {};
        var result =[];
        for(var k=0;k<arr.length;k++){
            if(!hash[arr[k]]){
                result.push(arr[k]);
                hash[arr[k]] = true;
            }
        }
        return result;
    }
    alert(findN(12));
发表于 2016-08-13 16:06:42 回复(0)
void PrintAll(int n){
    List<Integer> result = new ArrayList<Integer>();
    result.add(2);
    for(int i=3; i < n; i++){
        boolean isAdd = true;
        for(Integer number:result){
            if( number%i == 0){
                isAdd=false;
                break;
            }
        }
        if( isAdd)
            result.add(i);
    }
    return result;
}
发表于 2015-11-26 15:16:00 回复(0)

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class T extends JFrame{
private JTextArea output;
private JTextField field;
private JLabel label;
private int number;
private JPanel panel;
private boolean flag=true;
private String s="";
private int counter = 0;
public T()
{
super("Find the prime number");

   Container container = getContentPane();
   panel = new JPanel();
   panel.setLayout(new FlowLayout());
  
   label = new JLabel("Please enter a integer ");
   panel.add(label);

   field = new JTextField(5);
   field.addActionListener(
     new ActionListener(){
      public void actionPerformed(ActionEvent event)
      {
           
              find();
  }//end actionPerformed
   }//end actionListener
   );
     panel.add(field);
    container.add(panel,BorderLayout.NORTH);
  output = new JTextArea(15,20);
  container.add(new JScrollPane(output),BorderLayout.CENTER);
  setSize(300,300);
  setVisible(true);
  }//end constructor
public void find()
{
   number = Integer.parseInt(field.getText());
   for(int i = 2;i<=number; i++){
   flag = true;
   for(int j = 2;j<i;j++){

      if(i%j==0)
      {
   flag=false;
  break;
  
      }//end if

}//end innerfor
   if(flag){
   s += i + "\t"; 
      counter++;
   }
   
if(counter%10==0)
s+="\n";
   }///end outfor

   output.setText(s);

}//end method find
public static void main(String args[])
{
   T application = new T();
   application.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}//end class 

发表于 2015-11-04 16:31:42 回复(0)
public static void main(String[] args) {

int cnt = 0;
int begin = 0;
int end = 0;
int i = 0;
Scanner scanner = new Scanner(System.in);

System.out.print("請輸入求质数的开始范围:");
begin = scanner.nextInt();
System.out.print("請輸入求质数的结束范围:");
end = scanner.nextInt();

System.out.println("从" + begin + "到" + end + "之间的质数如下");
for (i = begin; i <= end; i++) {
if (isPrime(i)) {
cnt++;
System.out.print(i + "\t");
if (cnt % 8 == 0) {
System.out.println();
}

}
}

System.out.println("\n从" + begin + "到" + end + "之间的质数的总个数:" + cnt);

}

Public static boolean isPrime(int num){
   int i=0;
   int top =   (int) Math.sqrt(num)
   if(num==1) {
     return false;
    }
   if(num==2) {
    return true;
   }
  for(i=2 ; i< = top  ; i++){
      if(num % i==0) {
           break;
}
}
return i == top+1;
}
发表于 2015-11-04 15:38:04 回复(0)
#include<stdio.h>
int isprime(int a)
{
int i=2;
for(i=2;i<a;i++)
{
if(a%i==0)
return 0;
}
return 1;
}
int main()
{
int num;
int k=0;
int i;
scanf("%d",&num);
for(i=2;i<num;i++)
{
if(isprime(i)==1)
{
printf("%d ",i);
k++;
if(k%10==0)
{
printf("\n");
}
}
}
return 0;
}
发表于 2015-11-04 14:02:54 回复(0)
public List<Integer> getAllPrimeNumber(int n){
		List<Integer> primes = new ArrayList<Integer>();
		for(int i = n; i >1 ; i--){
			boolean flag = true;
			for(int j = i-1; j > 1; j--){
				if(i%j == 0){
					flag = false;
					break;
				}
			}
			if(flag){
				primes.add(i);
			}
		}
		return primes;
	}

发表于 2015-11-04 12:54:03 回复(0)
..

发表于 2015-11-03 16:22:20 回复(0)