编写java程序找出2-100之间的所有素数 求大神

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写java程序找出2-100之间的所有素数 求大神相关的知识,希望对你有一定的参考价值。

参考技术A 编写java程序找出2-100之间的所有素数 求大神 素数又称质数,有无限个。素数定义为在大于1的整数中,除了1和它本身以外不再有其他因数的数称为素数。
java程序找出2-100之间的所有素数,代码如下:
public void findPrimeNumber()
存放素数集合
List<Integer> lists=new ArrayList<Integer>();
遍历2-100
for(int x=2;x<100;x++)
标志是否为素数,默认是true
boolean flag=true;
循环x除以(x/2)的数,能整除则不是是素数(不包含2)
for(int y=2;y<x/2;y++)
if(x%y==0)
能整除,则把标志设置为false,不是素数
flag=false;
break;


if(flag)
flag还是true,则是素数
lists.add(x);


System.out.println("2-100的素数集合:"+lists);

结果:
2-100的素数集合:[2, 3, 4, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
求1到100之间的所有素数。求程序
#include<stdio.h> int isprime(int n) int i; if(n<=1)return 0; for(i=2;i<=n/2;i++) if(n%i==0)return 0; return 1; main() int i; for(i=1;i<=100;i++) if(isprime(i)) printf("%d \n",i);
编一个程序题:100~500之间的所有素数,
给你搞来一份C的,但是是求和的,如果你是学C的,应该会改吧
#include "stdio.h"
void main()

int i,temp,j;
long sum=0;
for(i=100;i<500;i++)

temp=0;
for(j=2;j<i;j++)
if(i%j==0)
temp++;
if(temp==0)
sum+=i;

printf("%ld",sum);

下面的是pascal的
var
i,j:longint;
b:boolean;
begin
for i:=100 to 500 do
begin
for j:=2 to trunc(sqrt(i)) do
begin
b:=true;
if i mod j=0
then begin
b:=false;
break;
end;
end;
if b then writeln(i);
end;
end.
找出100到200之间的所有素数并求和

#include <stdio.h>#include <math.h>int primer(int min, int max) int j,k,i; int sum = 0; for(i = min + 1;i <= max; i += 2) k = sqrt(i); for(j = 2;j <= k;j++) if(i % j ==0)break; if(j >= k + 1) printf("%d ",i); sum += i; return sum;int main() int min = 100, max = 200; int sum = 0; sum = primer(min, max); printf("sum:%d\n", sum); return 0;

vb 编写程序求出100-200间的所有素数
Sub test()
Dim i As Integer
Dim j As Integer
Dim m As Boolean
For i = 100 To 200
m = True
For j = 2 To i ^ 0.5
If i Mod j = 0 Then
m = False
Exit For
End If
Next j
If m Then Print i
Next i
End Sub
vb编写程序找出3~100间所有素数并输出窗体
Private Sub form_click()
Dim N As Integer
Dim I As Integer
Dim J As Integer
Dim S As Boolean
N = 0
For I = 3 To 100
S = True
For J = 2 To Sqr(I)
If I Mod J = 0 Then
S = False
Exit For
End If
Next
If S Then
Print Format(I, " 0# ");
N = N + 1
If N Mod 10 = 0 Then Print
End If
Next
Print
Print "从3-100之间共有以上"; N; "个素数"
End Sub
C#编写程序,找出1---100之间的所有质数
List<int> list1 = new List<int>();
list1.Add(2);2是质数,先加它
bool b;
for (int i = 3; i < 100; i += 2)偶数的不用比较了

b = true;
for (int j = i - 1; j > 1; j--)

if (i % j == 0)

b = false;
break;有一个能整除的就不再试其它了


if (b) list1.Add(i);是质数则添加到列表中

这样,list1中的所有数就是你想要的数了
编写VB程序,将500到1000之间的所有素数输出到列表框
private sub mand1_click()
for i = 500 to 1000
for j = 2 to fix(sqr(i))
if i mod j = 0 then
exit for
elseif i mod j <> 0 and j = fix(sqr(i)) then
list1.additem i
end if
next
next
end sub
编程:输出3 ~ 100之间的所有素数?
int i;
for(i=2;i<n/2+1;i++)

if(n%i==0)
return false;

return true;

main()

int i,count=0;
for(i=100;i<=300;i++)

if(IsPrime(i))

cout<<i;
count++;
if(count%5==0)
cout<<"\n";
else
cout<<" ";



编写一个java程序,用穷举法找出2~50之间的素数,并打印出来.
public static void main(String[] args)
int i, k;
boolean yes;
for (k = 2; k <= 50; k++)
yes = true;
i = 2;
while (i <= k - 1 && yes)
if (k % i == 0)
yes = false;
i++;

if (yes)
System.out.print(k + " ");

孪生素数

程序地址:http://www.cheemoedu.com/exercise/20


问题描述:

若两个素数之差为2,则这两个素数就是孪生素数。
编写程序找出1~100之间的所有孪生素数。


我的代码:

import math
def prime(n):
    count=0
    for  i in range(2,int(math.sqrt(n))+1):
        if n%i==0:
            count=1
        i+=1
    if count==1:
        return None
    else:
        return True
a=[]
for j in range(2,100):
    if prime(j)==True:
        a.append(j)

for k in range(len(a)-1):
    if a[k]+2==a[k+1]:
        print a[k],a[k+1]


结果:

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]


3 5

5 7

11 13

17 19

29 31

41 43

59 61

71 73


我的思路:

先求出100以内的素数,上次已经做过了(http://jmbzs.blog.51cto.com/9449309/1790973),

而且一个素数的孪生素数必然是在其左右的,所以判断是否满足a[k]+2==a[k+1]关系,满足的两素数即为孪生素数,注意,此时的循环范围为len(a)-1,如果是a[k-1]+2=a[k]的话,那么for循环就应为range(1,len(a));


示例代码:

#筛法找素数: 
# 1. 建立一张表,用True,False标识一个数是否是素数。
# 2. 找到一个素数p,然后把p的倍数都标记成非素数。
# 3. 查表检测p + 1, 如果非素数检测下一个, 是素数执行1的操作

pt = [True] * 100
res = []
for p in range(2, 100):
    if not pt[p]: continue
    res.append(p)
    for i in range(p * p, 100, p):
        pt[i] = False
for i in range(1, len(res)):
    if res[i] - res[i-1] == 2:
        print res[i-1], res[i]


以上是关于编写java程序找出2-100之间的所有素数 求大神的主要内容,如果未能解决你的问题,请参考以下文章

如何提高筛选法求大范围素数的效率

孪生素数

26.计算素数(较差算法)

编写程序求出100到1000范围内所有素数的和c语言

C语言m~n之间的素数

找出1~n之间的所有素数