论坛首页 招聘求职论坛

一道简单的Java面试题

浏览 101792 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (3)
作者 正文
   发表时间:2011-12-31   最后修改:2011-12-31
public static void main(String[] args) {

boolean tag=true;

for(int i=1;i<=100;i++)
{
for(int j=1;j<=100;j++)
{
if(i%j==0&&i!=j&&j!=1)
{
tag=false;
break;
}
}
if(tag==true)
{
System.out.print(i+"_");
}
else
{
tag=true;
}
}

}

如果我对素数的理解没错 这个应该可以"_只是为了打印出来好看点而已··"
0 请登录后投票
   发表时间:2012-01-29  
boolean flag = false;
for(int i=2;i<100;i++) { 
for(int j=2;j<i;j++) { 
if(i%j==0) {
flag = true;
break; 
}
}
if(!flag){
System.out.println(i);
}
flag = false;
}
0 请登录后投票
   发表时间:2012-01-30  
int num = 1;
for (int i = 1; i < 100; i++) {
          for (int j = 2; j <= i/2; j++) {
if (i % j == 0) {
num++;
}
}
if (num == 1) {
System.out.println("质数为:"+i);
}
num = 1;
}
这样写怎么样
0 请登录后投票
   发表时间:2012-01-30  
一个i++你就哭了,需要考虑偶数么?
0 请登录后投票
   发表时间:2012-01-30  
rickysun 写道
Bruce.Sun 写道
哥一看也愣了,想了半天没整明白啥是质数,看了楼主补充才明白需求,小整一下:
for (int i = 1; i <= 100; i++) {
Boolean prime = true;
// 遍历除以2-9,如果可以除尽则不是质数
for (int j = 2; j < 10; j++) {
if (i % j == 0) {
prime = false;
break;
}
}// end for j

if (prime)
System.out.println("质数:" + i);
} // end for i

不会框架的人,只会用这种笨方法,现在还记得去盛大面试的时候面试官问我不用中间变量怎么解决问题,可是习惯改不了,还是喜欢用中间变量 哈哈

正解!!

这也只能算100以内的,再多就出错了!
0 请登录后投票
   发表时间:2012-01-30  
自己写了一个,也写了几分钟。大学期间用c写了不少编程题,这个就是最基础最开始的一个..

自己跑了一遍,应该没啥问题


import java.math.*;
public class Prime{
public static void main(String args[]){
   
    for(int i=2;i<100;i++){
        boolean isPrime=true;
        for(int j=2;j<=Math.sqrt(i);j++)
        {
            if(i%j==0){
               isPrime=false;
            }          
        }
        if(isPrime==true)
        {
            System.out.println(i);
        }
    }   
}
}
0 请登录后投票
   发表时间:2012-03-14  
public static List<Integer> getAllPrime(int max)
	{
		
		List<Integer> list = new ArrayList<Integer>();
		if(max<2)
			return null;
		list.add(2);
		for(int i=3;i<=max;i++)
		{
			if(isPrime(list,i))
				list.add(i);
		}
		return list;
	}
	
	public static boolean isPrime(List<Integer> list,int p)
	{
		int sq = (int) Math.sqrt(p);
		
		for(Integer in:list)
		{
			if(p%in==0)
				return false;
			
			if(sq<in)
				break;
		}
		return true;
	}
0 请登录后投票
   发表时间:2012-03-16  
      private boolean isPrime(int n){
for(int i = 2; i < n; i++){
if(n%i == 0){
System.out.println(n +" is not a prime!");
return false;
}
}
System.out.println(n +" is a prime!");
return true;
}
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics