hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 1347|回复: 9

写了个小程序,我不知错在那儿?无法运行

[复制链接]

275

主题

454

帖子

1014

积分

大司空

Rank: 5Rank: 5

积分
1014
发表于 2024-4-6 01:46:12 | 显示全部楼层 |阅读模式
刚学在Visual C++ 6.0下写程序
#include<iostream.h>
#include<iomanip.h>
#include<math.h>
void  main()
{
  long  a,b,l=0;
  cout<<"please input two numbers:\n";
  cin>>a>>b;
  cout<<"primes from"<<a<<"to"<<b<<"is:\n";
  if(a%2==0)
  a++;
    for(long m=a;m<=b;m+=2)
  {
    int sqrtm=sqrt(m);
    int i;
    for(i=2;i<=sqrtm;i++)
      if(m%i==0)
        break;
          if(i>sqrtm)
    {
      if(l++%10==0)
        cout<<endl;
      cout<<setw(5)<<m;
    }
  }
}
编译后是这样,
prime1.obj - 1 error(s), 0 warning(s)
我不知错在那儿?
请各位能指出来。
回复

使用道具 举报

0

主题

173

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-4-6 01:46:52 | 显示全部楼层
#include <iostream>
#include <iomanip>
#include <math.h>

using namespace std;

void  main()
{
  long  a,b,l=0;
  cout<<"please input two numbers:\n";
  cin>>a>>b;
  cout<<"primes from"<<a<<"to"<<b<<"is:\n";
  if(a%2==0)
  a++;
    for(long m=a;m<=b;m+=2)
  {
    int sqrtm=(long)sqrt((double)m);
    int i;
    for(i=2;i<=sqrtm;i++)
      if(m%i==0)
        break;
          if(i>sqrtm)
    {
      if(l++%10==0)
        cout<<endl;
      cout<<setw(5)<<m;
    }
  }
}
回复

使用道具 举报

0

主题

167

帖子

92

积分

关内侯

Rank: 2

积分
92
发表于 2024-4-6 01:46:58 | 显示全部楼层
please input two numbers:
1
10000
primes from1to10000is:

    1    3    5    7   11   13   17   19   23   29
   31   37   41   43   47   53   59   61   67   71
   73   79   83   89   97  101  103  107  109  113
...
9901 9907 9923 9929 9931 9941 9949 9967 9973
回复

使用道具 举报

0

主题

171

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2024-4-6 01:47:44 | 显示全部楼层
有几处错误,改了下,请仔细看看
  1. #include<iostream.h>#include<iomanip.h>#include<math.h>void  main(){        long  a,b,l=0;        cout<<"please input two numbers:\n";        cin>>a>>b;        cout<<"primes from"<<a<<"to"<<b<<"is:\n";        if(a%2==0)                a++;            for(long m=a;m<=b;m+=2)        {                int sqrtm=(int)sqrt(m);                int i;                for(i=2;i<=sqrtm;i++)                {                        if(m%i==0)                                break;                }                                if(i>sqrtm)                {                        if(l++%10==0)                                cout<<endl;                        cout<<setw(5)<<m;                }        }}
复制代码
改完以后,基本正确,但是如果输入的a从2开始的话,会漏掉素数2。另外效率依然有点提高。
回复

使用道具 举报

0

主题

174

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-4-6 01:48:27 | 显示全部楼层
求某一范围内的素数用筛法,而不用试除法。试除法太慢了。
回复

使用道具 举报

0

主题

177

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2024-4-6 01:48:32 | 显示全部楼层
我把二位的代码写上运行仍错,我怀疑步骤有错
1. 打开Visual C++ 6.0
2. 点击文件下拉菜单“新建”,弹出“新建”活动窗口
3. 点击“文件”标签
4. 双击C++ 源文件
5. 在客户区写入源程序代码
6. 单击编译按钮
这时输出窗口出现“prime1.obj - 1 error(s), 0 warning(s)”
否则可以执行步骤7.按运行键
出运行结果了。
不知错在何处?
回复

使用道具 举报

0

主题

178

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-4-6 01:48:44 | 显示全部楼层
下面是我的错误信息:
--------------------Configuration: prime0001 - Win32 Debug--------------------
Compiling...
Error spawning cl.exe

prime0001.obj - 1 error(s), 0 warning(s)
请指出改正的地方,谢了
回复

使用道具 举报

0

主题

170

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-4-6 01:49:00 | 显示全部楼层
你VC装得有问题.
回复

使用道具 举报

8

主题

206

帖子

44

积分

新手上路

Rank: 1

积分
44
发表于 2024-4-6 01:49:21 | 显示全部楼层
多谢各位的帮忙,总算可以运算了。
但最多可以写300行,超过了怎么办呢?
下面是实际情况:
please input two numbers:
2 26900
primes from 2 to 26900 is:

     3     5     7    11    13    17    19    23    29    31
...................................................................................
26821 26833 26839 26849 26861 26863 26879 26881 26891 26893
Press any key to continue
这里少一行《please input two numbers:》
2 27000
primes from 2 to 27000 is:

     3     5     7    11    13    17    19    23    29    31
...................................................................................
26903 26921 26927 26947 26951 26953 26959 26981 26987 26993
Press any key to continue
回复

使用道具 举报

0

主题

190

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-4-6 01:49:57 | 显示全部楼层
请问筛法,与试除法有何不同?
筛法的求某一范围内的素数的代码如何写?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-12-5 03:06 , Processed in 0.068583 second(s), 21 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

快速回复 返回顶部 返回列表