已结贴√

问题点数:20 回复次数:15

大家帮看看,怎么回事?Delphi竟比vc++还快

前天有一个求素数个数问题,用delphi7.0求得100000000以内素数用时21.234秒,为想更快一点,把代码变为C语言后用vc++6.0计算居然要27.578秒,故把代码贴出,大家帮忙查找原因?

Delphi7.0代码:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,math;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var i, j, k, l,m,n,r:integer;

d,s:integer;

x,z,t,t1,t2: double;

a:array of integer;

ss:string;

begin

t1:=now;

ss:=trim(self.Edit1.Text );

if ss<>'' then n:=strtoint(ss) else n:=0;

setlength(a,n+1);

m:=0;s:=0;

if (n=2) then

begin

m:=1;a[m]:=2;s:=2;

end;

if (n=3) then

begin

m:=1;a[m]:=2;s:=2;

m:=2;a[m]:=3;s:=5;

end;

if (n>3)  then

begin

m:=1;a[m]:=2;s:=2;

m:=2;a[m]:=3;s:=5;

for i:=4 to n do

begin

x:=i;z:=sqrt(x);l:=trunc(z)+1;k:=0;

for  j:=1 to m  do

begin

if (a[j]>l) then break;

r:=i mod a[j];

if (r = 0) then

begin

inc(k);break;

end;

end;

if (k = 0) then

begin

inc(m);

s := s + i;

a[m]:=i;

end;

end;

end;

t2:=now;

t:=(t2-t1)*86400;

ss:=floattostr(t);

self.Label5.Caption  :=ss;

ss:=inttostr(m);

self.Label3.Caption  :=ss;

end;

end.

vc++6.0代码:

// suhucs.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include

#include

#include

#include

#include

int main(int argc, char* argv[])

{

int i, j, k, l,m,n,r;

int d,s;

double x,z,t;

clock_t begin,end;

int *a;

printf("n=");

scanf("%d",&n);

printf("\n");

a=(int *)malloc((n+1)*sizeof(int))   ;

begin=clock();

m=0;s=0;

if(n==2)

{

m=1;a[m]=2;s=2;

}

if(n==3)

{

m=1;a[m]=2;s=2;

m=2;a[m]=3;s=5;

}

if(n>3)

{

m=1;a[m]=2;s=2;

m=2;a[m]=3;s=5;

for(i=4;i<=n;i++)

{

x=i;z=sqrt(x);l=(int)z+1;k=0;

for( j=1;j<= m;j++)

{

if(a[j]>l)break;

r=i%a[j];

if (r == 0) {

k++;break;

}

}

if (k == 0) {

m++;

s = s + i;

a[m]=i;

}

}

}

end=clock();

t=(double)(end-begin)/CLOCKS_PER_SEC;

printf("素数个数=%d\n",m);

printf("计算时间=%f",t);

free(a);

system("pause");

return 0;

}

vc的速度有c语言快吗,大家帮看看,怎么回事?Delphi竟比vc++还快相关推荐

  1. 小米8android版本点击3次,翻出古董小米3刷完安卓8.0,跑起来竟比MIUI9还快

    原标题:翻出古董小米3刷完安卓8.0,跑起来竟比MIUI9还快 说起古董的小米3手机,算是小米史上比较失败的作品,尤其是英伟达处理器的版本.小米3也是最短命的小米手机之一,迫使小米提前发布了小米4. ...

  2. 分段线性插值c语言程序_【短道速滑】OpenCV中cvResize函数使用双线性插值缩小图像长宽大小一半时速度飞快(比最近邻还快)之异象解析和自我实现。...

    点击上方↑↑↑"OpenCV学堂"关注我 作者网名:laviewpbt 是图像处理,算法实现与加速优化方面的大神!其开发的imageshop软件大小只有1MB,却实现了非常丰富与复 ...

  3. java基础巩固-宇宙第一AiYWM:为了维持生计,Redis基础Part6(Redis的应用场景、Redis是单线程的速度还快、Redis线程模型:Reactor模式、事件、发布订阅、管道)~整起

    PART1-1:为什么Redis是单线程的 Redis单线程是指: Redis的网络IO和键值对读写是由一个线程来完成的.这也是 Redis 对外提供键值存储服务的主要流程.Redis的其他功能,比如 ...

  4. vc 运行c语言步骤,第1章_C语言概述(vc++环境如何运行c语言程序)[精选].ppt

    第1章_C语言概述(vc环境如何运行c语言程序)[精选] C语言程序设计 授课对象:电子商务06 时间安排: 理论课(1-9周): 星期一 5-6节 9407D 星期三 5-6节 9410D 实验课( ...

  5. 2020移动apn接入点哪个快_手机WiFi网速度太慢?教你一招网速翻倍好用,比5G还快...

    手机WiFi网速慢似蜗牛速度,出现这样的情况时,不要怀疑是你的WiFi有问题,其实只是你的手机不会设置,导致在连接WiFi使用手机时网速非常缓慢.下面就教大家一招快速提升网速,让你的手机瞬间流畅. 方 ...

  6. PyPy为什么能让Python比C还快?一文了解内在机制

    作者|力元.馨月 来源|机器之心 「如果想让代码运行得更快,您应该使用 PyPy.」 - Python 之父 Guido van Rossum 对于研究人员来说,迅速把想法代码化并查看其是否行得通至关 ...

  7. SQL工具性能实测:居然比Navicat还快,数百万行数据导出仅51秒

    如今的SQL语言逐渐成为职场人士必备的能力.为了让更多SQL用户有一款免费又好用的SQL工具,麦聪软件于2023年1月初发布了一款Web版SQL工具SQL Studio,一经推广就赢得了众多用户的注册 ...

  8. 揭秘 ClownFish 比手写代码还快的原因

    说明:本文的第一版由于反对人数较多(推荐/反对数量是:23 / 17), 我在8月20日删除了博文内容,只留下一段简单的内容. 既然分享技术也引来这么多的反对,那我就不分享了. 如果希望知道我的优化方 ...

  9. 在M1芯片上跑原生Linux:编译速度比macOS还快40%,真香警告

    Alex 发自 凹非寺 量子位 | 公众号 QbitAI 现在,M1 Mac可以顺利运行原生Linux了. 专为苹果自研芯片打造的Asahi Linux项目,Alpha版本已经释出. 在Mac采用英特 ...

最新文章

  1. python做自动化如何定位动态元素_python-web自动化-元素定位
  2. POJ1430 Binary Stirling Numbers
  3. rowdata java_Java RowDataUtil.addRowData方法代碼示例
  4. JVM类加载机制详解
  5. 显示所有大写字母python_python 输出所有大小写字母, range()以及列表切片
  6. P1052 过河 线性dp
  7. c语言函数 参数,C语言函数的调用与参数
  8. java oracle 乱码_oracle中的数据库乱码的原因与解决
  9. 零基础学习编程会遇到的坑
  10. 宾州州立计算机科学世界排名,宾州州立大学帕克分校qs世界排名
  11. 干货 | 产品助理入门攻略(一枚入行3年的PM内心独白)
  12. 真正了解gets() fgets() getc() fgetc()的区别
  13. 吴恩达机器学习______学习笔记记录#八、神经网络---表述
  14. Android初窥门径
  15. h5封装去底部_贪婪洞窟H5:也出微信小游戏了!还是原来贪婪的味道
  16. 一键智能抠图-原理与实现
  17. 银行卡归属地查询免费API
  18. 强化学习 之 蒙特卡洛方法
  19. 全球及中国智能机器人产业整体运营状况与投资产值分析报告2022版
  20. uniapp使用绝对定位被父元素截断问题

热门文章

  1. 接到一个需求,想在页面上加一个链接有多难?
  2. 码农与架构师之间的差距,究竟在哪里?
  3. Spring Boot 2.x基础教程:默认数据源Hikari的配置详解
  4. 死磕Java并发:深入分析CAS
  5. 命名实体识别_用膨胀卷积进行命名实体识别 NER
  6. zabbix服务器没有.pid文件,PID file /run/zabbix/zabbix_server.pid not readable (yet?) after start. 报错解决...
  7. win10系统 ubuntu子系统 进行ndk编译笔记
  8. error C2039: IsOutRange
  9. python内积 卷积
  10. RNN循环神经网络的直观理解:基于TensorFlow的简单RNN例子