C_and_CPP 板


LINE

小弟我也是个刚学C/C++的新手 看了这篇试着写了一下 请各位不吝指教!!^^ #include <stdio.h> #include <stdlib.h> int primetest(int); int main() { int j(0),n; printf("enter a number:"); scanf("%d",&n); int a[n]; printf("N have factor(s):"); ┐ for(int i=1;i<=n;i++){ │这部分印出所有因数 if(n%i==0){ │ printf("%d\t",i); ┘ if(primetest(i)==0){ ┐ a[j]=i; │这部分把上面得到的因数做质因数测试 j++; │并将结果存进向量a[] } ┘ } } printf("\n"); printf("N has prime(s):"); ┐ for(int i=1;i<j;i++){ │列印出质因数 printf("%d\t",a[i]); │ } ┘ printf("\n"); system("pause"); return 0; } int primetest(int p){ ┐ int counter(0); │ for(int i=2;i<=p/2;i++){ │ if(p%i==0) │质因数测试器 counter++; │ } │ return counter; │ } ┘ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.13.134
1F:→ Strogatz:我自觉这写法结果虽然是正确的 但效率非常低 0rz 08/12 18:41
2F:推 VictorTom:纯找小於N的质数的话, 有个常见的作法是 筛法 :) 08/12 18:46
3F:→ su31o4gj83:如果你要找质因数的话i不用跑完, 不过所有因数的话.... 08/12 18:55
4F:→ su31o4gj83:呵~我看到你的质因数测试器了 08/12 18:58
5F:→ su31o4gj83:其实所有的因数的话也不用跑完, 一半就可以了 08/12 19:01
6F:推 VictorTom:其实那是质数测试器, 只是因为喂给它的是因数....XD 08/12 19:10
7F:→ Strogatz:yes, 我本来是写n/2, 不过後来想到n本身也是因数,但是去 08/12 19:11
8F:→ VictorTom:话说不用跑一半啦, 跑根号p就够了:) 08/12 19:11
9F:→ Strogatz:掉 1/2 factor 又增加太多计算了 08/12 19:12
10F:→ Strogatz:是没错 不过我不知道有没有预设的sqrt() 没有的话要额外 08/12 19:13
11F:推 VictorTom:math.h有sqrt吧?? 还是得用pow(n,0.5)?? 有点忘了.... 08/12 19:14
12F:→ VictorTom:话说, 其实还是重复算很多, 这时候筛下去比较爽啦XD 08/12 19:15
13F:→ Strogatz:有 thanks 08/12 19:34
14F:→ su31o4gj83:另外, 可以考虑移除primetest, 直接放到main的for loop 08/12 20:37
15F:→ su31o4gj83:跑一半我是想说/2比sqrt省, 不过应该还是用sqrt比较好 08/12 20:41
16F:→ su31o4gj83:毕竟数字大一点, 用sqrt可少跑很多步 08/12 20:43
17F:→ su31o4gj83:我是觉得有时候程式好读比效能重要XD 08/12 20:48
18F:→ Strogatz:哈 我写的太挤了 08/12 21:39
19F:→ su31o4gj83:不会挤啦, 你的程式码还蛮整齐的, 风格跟我蛮类似的 08/12 22:01
20F:→ su31o4gj83:我的程式码会比你的再挤一点, 像是一行码我都不加{} 08/12 22:03
21F:→ su31o4gj83:我的好读是指结构清楚, 搭配一点注解就很好读的程式 08/12 22:05
22F:→ su31o4gj83:你的写作习惯我觉得没什麽问题, 不用担心 :) 08/12 22:07







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP