重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个的主要点是嵌套的循环,要注意循环要遍及数据的循环、逻辑判断,素数就是表示除1及其本身外不能被其他比他小的整数整除,掌握这点就可以理解了,下面代码仅供参考:
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的九龙坡网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
//实现求1-100之间的所有素数
public class Test
{
public static void main(String[] args)
{
//使用外层循环来控制1-100的数据的遍历
for(int i = 1 ; i = 100 ; i++){
//素数就是除1及其本身外不能被其他整数整除
int j = 2;
while(i j){
//如果可以被小于他的数据整除,表示该数不是素数,跳出循环
if(i % j == 0){
break;
}
j++;
}
//如果没有找到比其小的数据可以整除,则表示该数是素数
if(i == j){
System.out.println(i);
}
}
}
}
/**
*
需求:
求101-200之内的素数?
*/
public
class
demo3
{
public
static
void
main(string[]
args)
{
//
内循环判断是否为素数,外循环控制打印
int
num,
i;
int
count
=
0,
sum
=
0;
for
(num
=
101;
num
=
200;
num++)
{
for
(i
=
2;
i
num;
i++)
{
if
(num
%
i
==
0)
{
break;
}
}
if
(num
==
i)
{
sum
+=
num;
count++;
system.out.print(num
+
"\t");
if
(count
%
5
==
0)
{
system.out.println();
}
}
}
system.out.println();
system.out.println("101到200之间所有素数的和为"
+
sum);
}
}
质数又称素数。一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数;否则称为合数。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。下面是一个java求100之内的素数简单示例。
public class test {
public static void main(String[] args) {
int i,n,k=0;
for (n = 3; n=100; n++) { //3~100的所有数
i=2;
while (in) {
if (n%i==0) break; //若能整除说明n不是素数,跳出当前循环
i++;
}
if (i==n) { //如果i==n则说明n不能被2~n-1整除,是素数
k++; //统计输出数的个数
System.out.print(i+ "\t ");
if (k %6==0) //每输出5个则换行
System.out.println();
}
}
}
}
public class Test {
public static void main(String[] args) {
int i, count = 0;
for(i=2; i=100; i++){
if(isPrimeNumber(i) == true){
count++;
System.out.printf("%6d", i);
if(count%5 == 0){
System.out.println();
}
}
}
//判断一个数是否是素数,若是,返回true,否则返回false
public static boolean isPrimeNumber(int num){
int k = (int) Math.sqrt(num);
if(num == 2){
return true;
for(int i=2; i=k; i++)
if(num%i == 0)
return false;
return true;
}
}
扩展:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
质数的个数是无穷的。欧几里得的《几何原本》中有一个经典的证明。它使用了证明常用的方法:反证法。具体证明如下:假设质数只有有限的n个,从小到大依次排列为p1,p2,……,pn,设N=p1×p2×……×pn,那么,
是素数或者不是素数。
如果
为素数,则
要大于p1,p2,……,pn,所以它不在那些假设的素数集合中。
如果 为合数,因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以不可能被p1,p2,……,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。
其他数学家给出了一些不同的证明。欧拉利用黎曼函数证明了全部素数的倒数之和是发散的,恩斯特·库默的证明更为简洁,哈里·弗斯滕伯格则用拓扑学加以证明。
编写java程序找出2-100之间的所有素数 求大神 素数又称质数,有无限个。素数定义为在大于1的整数中,除了1和它本身以外不再有其他因数的数称为素数。
java程序找出2-100之间的所有素数,代码如下:
public void findPrimeNumber(){
存放素数集合
ListInteger lists=new ArrayListInteger();
遍历2-100
for(int x=2;x100;x++){
标志是否为素数,默认是true
boolean flag=true;
循环x除以(x/2)的数,能整除则不是是素数(不包含2)
for(int y=2;yx/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之间的所有素数。求程序
#includestdio.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;i500;i++)
{
temp=0;
for(j=2;ji;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.hint 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 "从3-100之间共有以上"; N; "个素数"
End Sub
C#编写程序,找出1---100之间的所有质数
Listint list1 = new Listint();
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;in/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))
{
couti;
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 + " ");
}
}