public class Sushu
{
public static void main(String args[])
{
int i=100;
if(c(i))//i为什么要初始化啊???
System.out.println(c(i));
}
static boolean c(int i)
{
int j,sum=0;
for(i=2;i<=100;i++)
{
for(j=2;j<100;j++)
{
if(i%j==0)
return false;
}
sum=sum+i;
}
return true;
}}为什么这个程序是什么都不输出啊,我想用一个子类封装判断素数,然后在求100以内素数的和!!
大侠快来帮我解决下!!
解决方案 »
- 遍历MAP接口
- 关于Integer和int区别的新疑惑
- 尝试用HttpClient登陆淘宝的问题,求助各位大虾
- 一个初学者碰到的小问题
- 关于时区设定的问题 !
- 用java编写类似tree命令的程序
- 关于IO中的public int read(char[ ] cbuf)方法
- 请各位大虾帮我看一下,关于 全文搜索引擎 的问题(高分相求)。
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!我从数据库中取出数据,怎么转换(在线等)
- null.$SwitchMap$com$moor$imkf$event$KFLoginEvent[KFLoginEvent.ordinal()]求解!
- 关于JAVA异常的迷惑
- jsp相关问题!!!!急急
这样改。
public class Sushu
{
public static void main(String args[])
{
int i=100;
if(c(i))//i为什么要初始化啊???不初始化你说i是什么值?
System.out.println(c(i));
}
static boolean c(int i)
{
int j,sum=0;
for(i=2;i<=100;i++)
{
for(j=2;j<i;j++) //应该要小于i才是,实际上更优化应该是小于Math.sqrt(i)
{
if(i%j==0)
break;//这里不能return,应该是
}
if(j == i) //如果j == i,则表示上面已经循环完一次,没有找到% == 0的,是素数
sum=sum+i;
}
return true;
}}
public static void main(String args[]) {
int i = 100;
c(i);
} static void c(int i) {
int j, sum = 2;
int flag = 0;
for (i = 3; i <= 100; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
flag = 1;
break;
} else {
flag = 0;
} }
if (flag == 0) {
System.out.println(i);
sum = sum + i;
} }
System.out.println(sum);
}
}
你这个不行啊 我要求是输出100以内素数的全部和,你这个输出就死一个true