【c#】求1到n之间的所有素数之和.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【c#】求1到n之间的所有素数之和.相关的知识,希望对你有一定的参考价值。

给你一个超高效的代码,你试一下能看懂不!

List<int> GetAllPrimeNumber(int num)
if(num<2) throw new Exception("必须是大于1的整数");
List<int> primenumber = new List<int>();
primenumber.Add(2);

if(num<3) return primenumber;
for(int s =3;s<=num;s+=2)

int k = (int)Math.Sqrt(s);

//取出小于S开方的最大整数 for(int i =0;i<primenumber.Count;i++)

if(primenumber[i]>k)

//是质数的情况
primenumber.Add(s);
break;

if(s%primenumber[i]==0)
break;



return primenumber;

该函数是求1....N中所有关素数。

List<int> result = GetAllPrimeNumber(num);//求出所有的素数
int temp = result.Sum();//利用lambad表达式计算所有素数的和。

当然这个是分开写的,其实对于上式你完全可以将素数内再定义一个int,跟在List.add后计算其和的。效率更高。
参考技术A 静态无效的主要(字串[] args)


而(真)



Console.Write(“请输入n的值:”);

STR = Convert.ToInt32(Console.ReadLine());

PMB PB =新的PMB();

(pb.pumb(STR))

COUT = COUT +的海峡;

了Console.Writeline的(“0是一个素数”,STR);

其他



了Console.Writeline(“ 0是不是素数“,STR);





的私有类PMB

公共布尔PUMB (int类型)



布尔BL =真;

INT I;

(= 2 <= S / 2; + +)

如果(%I == 0)



BL = FALSE;

突破;



( > 1),

返回BL;

返回FALSE;





--------------- ---------------静态无效的主要(1到100的素数----------------------- <BR /字串[] args)



诠释计数= 0;

(INT I = 2; <= 100; + +)



BOOL BL =真;

(J = 2; <= I / 2; J + +)



如果(%J == 0)

BR /> BL = FALSE;

突破;





(BL)



计数=计数+ I;

了Console.Writeline(I);



了Console.Writeline(计数);

1.求100-300间的所有素数,按每行10个数输出,并求出输出怎么做?

参考技术A Java实现:
public class PrimeNumbers
public static void main(String[] args)
// 枚举100-300之间的数字
for (int num = 100; num <= 300; num++)
// 判断是否是素数
boolean isPrime = true;
for (int i = 2; i < num; i++)
if (num % i == 0)
isPrime = false;
break;


if (isPrime)
System.out.print(num + " ");
// 每输出10个数字换行
if (num % 10 == 0)
System.out.println();





PHP实现:

<?php
// 枚举100-300之间的数字
for ($num = 100; $num <= 300; $num++)
// 判断是否是素数
$isPrime = true;
for ($i = 2; $i < $num; $i++)
if ($num % $i == 0)
$isPrime = false;
break;


if ($isPrime)
echo $num . " ";
// 每输出10个数字换行
if ($num % 10 == 0)
echo "<br>";



?>
C语言:

#include <stdio.h>
int main()

// 枚举100-300之间的数字
for (int num = 100; num <= 300; num++)
// 判断是否是素数
int isPrime = 1;
for (int i = 2; i < num; i++)
if (num % i == 0)
isPrime = 0;
break;


if (isPrime)
printf("%d ", num);
// 每输出10个数字换行
if (num % 10 == 0)
printf("\n");



return 0;

Python实现:
# 枚举100-300之间的数字
for num in range(100, 301):
# 判断是否是素数
for i in range(2, num):
if num % i == 0:
break
else:
print(num, end=" ")
# 每输出10个数字换行
if num % 10 == 0:
print()
参考技术B Java实现:
public class PrimeNumbers
public static void main(String[] args)
// 枚举100-300之间的数字

以上是关于【c#】求1到n之间的所有素数之和.的主要内容,如果未能解决你的问题,请参考以下文章

如何用C语言求1至100所有素数的和?

1.求100-300间的所有素数,按每行10个数输出,并求出输出怎么做?

C语言求助,《求m和n之间的所有素数》

求m至n之间的所有素数(编程)

C语言试题四之计算并输出3到n之间所有素数的平方根之和

50—100间的素数