黑马程序员技术交流社区
标题:
关于素数的判断,给大家分享下
[打印本页]
作者:
高腾
时间:
2013-6-15 11:22
标题:
关于素数的判断,给大家分享下
本帖最后由 高腾 于 2013-6-16 06:26 编辑
看到论坛里面一些同学对素数的判断方法,有些漏洞,随即自己写了一个方法,仅供和同学一起交流
也希望有更好方法的同学能拿出来一起分享,下面是我写的:
int j = 0;
int count = 0;
for (int i = 2; i <= 100; i++) //输出1-100以内的素数
{
//素数的判断方法是除了1和本身以外,不能被其它自然数整除,只用计算到本身的平方根处
for (j = 2; j < Math.Sqrt(i); j++)
{
if (i % j == 0) //如果该数能被某个自然数整除,则退出当前循环
{
break;
}
if (i % j != 0) //如果不能整除,继续下一个循环
{
continue;
}
}
if (i==2||j > Math.Sqrt(i)) //需要注意的是2也是素数
{
count++;
Console.Write("{0}\t",i);
if (count % 8 == 0) //每行输出8个数
{
Console.WriteLine();
}
}
}
Console.ReadLine();
复制代码
test.jpg
(21.68 KB, 下载次数: 0)
下载附件
2013-6-15 11:22 上传
作者:
Akm
时间:
2013-6-15 11:29
public class Demo{
public static void main(String[] args) {
// method();
// method2();
// method3();
method4();
}
private static void method4() {
Scanner sc = new Scanner(System.in);
int x = 0;
int i = 2;
System.out.println("输入一个数------>");
x = sc.nextInt();
while (x <= 2) {
System.out.println("不用判断,你都懂~");
System.out.println("输入一个数------>");
x = sc.nextInt();
}
while (x % i != 0) {
i++;
}
if (x == i) {
System.out.println("素数");
} else
System.out.println("不是素数");
}
}
复制代码
作者:
李奔
时间:
2013-6-15 12:51
本帖最后由 李奔 于 2013-6-15 12:52 编辑
一种比较简单的实现方法:
Console.WriteLine("请输入一个整数:");
String str = Console.ReadLine();
int zhengshu;
if (!(int.TryParse(str, out zhengshu)))
{
Console.WriteLine("输入的整数不对,请重新输入!");
return;
}
int i;
//判断一个数是否为质数,只需要判断它能否被从2~它的一半整除。
for (i = 2; i <=zhengshu / 2; i++)
{
if (zhengshu % i != 0)
{
continue;
}
else
{
Console.WriteLine("{0}不是质数",zhengshu);
break;
}
}
if(i>zhengshu/2)
{
Console.WriteLine("{0}是质数",zhengshu);
}
Console.ReadKey();
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2