62,612
社区成员
发帖
与我相关
我的任务
分享
package sushu;
public class suhsu
{
public static void main(String[] args)
{
int i,a;
int num=0;
for(i=101;i<201;i++)
{
int s=0;
for(a=2;a<i;a++)
{
if(i%a==0)
{
break;
}
if(a>=i)
{
s=1;
}
}
if(s==1)
{
num++;
System.out.println(i);
}
}
System.out.println(num);
}
}
楼主别误会,我这发的还是你的代码,忍不住吐槽一下,注意一下你的代码的结构好不好,这括号看的我很头疼,所以不得不给你整了整这括号的结构。这一个程序员的代码就相当于一个人的脸面,所以要让人看着舒服,符合规范。
错误是逻辑性的,你可以分别带入a=101和102就可以发现,当a=101,i%a==0不成立,a>=i也不成立,所以s还是等于0,最后一个if语句不会执行,最后num++中的内容还是没有执行,num=0;当a=102,i%2=0成立,所以break退出for循环,最后num++中的内容还是没有执行,num=0.
楼主加油
public static void main(String[] args) {
// TODO Auto-generated method stub
int i, a;
int num = 0;
for (i = 101; i < 201; i++) {
int s = 0;
for (a = 2; a < i; a++) {
if (i % a == 0) {
break;
}
if (a >= i) {
s = 1;
}
}
if (s == 1) {
num++;
System.out.println(i);
}
}
System.out.println(num);
}
没看明白这是要算啥,a一直小于i,s不会等于1,num不会加,所以等于0