想用java编一个程序用来求101到225之间共有多少个素数,并把它们都显示出来,以下是代码:- class PrimeNumber
- {
- public static void main(String[] args)
- {
- Opera o=new Opera();
- o.Output();
- }
- }
- class Opera
- {
- static int flag=0;
- Opera()
- {
- for(int i=101;i<122;i++)
- {
- int k=(int)(Math.sqrt(i)+1);
- for(int n=2;n<k;n++)
- {
- while(n==(int)(Math.sqrt(i)))
- {
- if(i%n!=0)
- {
- flag++;
- System.out.println(i);
- break;
- }
- }
- if(i%n==0)
- {
- break;
- }
- }
- }
- }
- void Output()
- {
- System.out.println("一共有素数"+flag+"个");
- }
- }
复制代码 下面是运行结果:
101
103
107
109
113
然后cmd窗口就没反应了,一看windows任务管理器 cpu占用率100%,大家谁能帮我看看这个程序到底哪里错了啊???其实开始时候我是求101到200之间的素数的,但也出现了这样的问题,我以为是运算不过来呢,就把200改为110,一试,真好使,但我把数设置为123就不行了,不知道为什么.......
|
|