注册 登录
编程论坛 C++教室

[求助]帮忙看下什么问题;谢谢!!

烈性炸药 发布于 2007-11-25 23:41, 924 次点击
#include<iostream.h>
void main()
{
 long n=62143;
 long r=0;
 for(long i=3;i<n;i++)
 for(long j=2;j<i-1;j++)
 {
  if(i%j==0)
   r++;
 }
 cout<<r<<endl;
}

为什么没有输出啊?
9 回复
#2
kisscjy2007-11-26 00:34
给点耐心吧~~

计算机也要时间的!!
#3
long_5577992007-11-26 07:58
这个源程序的目的是什么啊
#4
ming51920052007-11-26 11:04
楼上的说的对
#5
孤魂居士2007-11-26 15:02
分析了半天
不知道仁兄 是求什么东西
#6
beyond07022007-11-26 17:00
long n=62143. 值超出范围,改一下就行了
#7
烈性炸药2007-11-27 18:04
不好意思,我才发现我自己算错了!!!但是还是不知道为什么会没有输出?
题目是这样的:
有62143个人,从2开始编号,站成一队,然后开始报数,后面的人报的数如果是前面的人报的数的倍数那么他就走出队中来,问最后这个队还剩多少人?
提示最好用筛选法求解.
但是我还不知道什么是筛选法!!
#8
烈性炸药2007-11-27 18:10
那种错误的算法有结果了,花了10来秒才算出来的,不好意思!!!
谁能给我个正确的算法啊?
#9
xinyue_5012007-11-27 19:16
是求小于62143的质数的个数吧
参看一下我改的:
#include<iostream.h>
void main()
{
long n=62143;
long r=0,last;
for(long i=3;i<n;i++)
for(long j=2;j<i-1;j++)
{
  if(i%j==0)
  {r++;break;}
}
last=n-r;

cout<<"last number is  "<<last<<endl;
}
#10
烈性炸药2007-11-27 23:53
谢谢!!这样算就对了!!
但是什么叫筛选法呢?
1