c语言输出100到200之间的素数 用C语言输出100到200之间的素数
C\u8bed\u8a00\u8f93\u51fa100-200\u4e4b\u95f4\u7684\u7d20\u6570\u903b\u8f91\u9519\u8bef\uff0c\u51c6\u786e\u4f4d\u7f6e\u4e3a14\u884c\uff0c\u6b63\u786e\u4ee3\u7801\u5982\u4e0b\uff1a#includeint main(){int i = 0;for (i=100; i=i){printf("%d",i);}}return 0;}
\u6269\u5c55\u8d44\u6599\uff1a
\u8d28\u6570\u53c8\u79f0\u7d20\u6570\u3002\u4e00\u4e2a\u5927\u4e8e1\u7684\u81ea\u7136\u6570\uff0c\u9664\u4e861\u548c\u5b83\u81ea\u8eab\u5916\uff0c\u4e0d\u80fd\u88ab\u5176\u4ed6\u81ea\u7136\u6570\u6574\u9664\u7684\u6570\u53eb\u505a\u8d28\u6570\uff1b\u5426\u5219\u79f0\u4e3a\u5408\u6570\u3002
\u8d28\u6570\u7684\u4e2a\u6570\u662f\u65e0\u7a77\u7684\u3002\u6b27\u51e0\u91cc\u5f97\u7684\u300a\u51e0\u4f55\u539f\u672c\u300b\u4e2d\u6709\u4e00\u4e2a\u7ecf\u5178\u7684\u8bc1\u660e\u3002\u5b83\u4f7f\u7528\u4e86\u8bc1\u660e\u5e38\u7528\u7684\u65b9\u6cd5\uff1a\u53cd\u8bc1\u6cd5\u3002\u5177\u4f53\u8bc1\u660e\u5982\u4e0b\uff1a\u5047\u8bbe\u8d28\u6570\u53ea\u6709\u6709\u9650\u7684n\u4e2a\uff0c\u4ece\u5c0f\u5230\u5927\u4f9d\u6b21\u6392\u5217\u4e3ap1\uff0cp2\uff0c\u2026\u2026\uff0cpn\uff0c\u8bbeN=p1\u00d7p2\u00d7\u2026\u2026\u00d7pn\uff0c\u90a3\u4e48\uff0c
\u662f\u7d20\u6570\u6216\u8005\u4e0d\u662f\u7d20\u6570\u3002
\u5982\u679c
\u4e3a\u7d20\u6570\uff0c\u5219
\u8981\u5927\u4e8ep1\uff0cp2\uff0c\u2026\u2026\uff0cpn\uff0c\u6240\u4ee5\u5b83\u4e0d\u5728\u90a3\u4e9b\u5047\u8bbe\u7684\u7d20\u6570\u96c6\u5408\u4e2d\u3002
\u5982\u679c \u4e3a\u5408\u6570\uff0c\u56e0\u4e3a\u4efb\u4f55\u4e00\u4e2a\u5408\u6570\u90fd\u53ef\u4ee5\u5206\u89e3\u4e3a\u51e0\u4e2a\u7d20\u6570\u7684\u79ef\uff1b\u800cN\u548cN+1\u7684\u6700\u5927\u516c\u7ea6\u6570\u662f1\uff0c\u6240\u4ee5\u4e0d\u53ef\u80fd\u88abp1\uff0cp2\uff0c\u2026\u2026\uff0cpn\u6574\u9664\uff0c\u6240\u4ee5\u8be5\u5408\u6570\u5206\u89e3\u5f97\u5230\u7684\u7d20\u56e0\u6570\u80af\u5b9a\u4e0d\u5728\u5047\u8bbe\u7684\u7d20\u6570\u96c6\u5408\u4e2d\u3002\u56e0\u6b64\u65e0\u8bba\u8be5\u6570\u662f\u7d20\u6570\u8fd8\u662f\u5408\u6570\uff0c\u90fd\u610f\u5473\u7740\u5728\u5047\u8bbe\u7684\u6709\u9650\u4e2a\u7d20\u6570\u4e4b\u5916\u8fd8\u5b58\u5728\u7740\u5176\u4ed6\u7d20\u6570\u3002\u6240\u4ee5\u539f\u5148\u7684\u5047\u8bbe\u4e0d\u6210\u7acb\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u7d20\u6570\u6709\u65e0\u7a77\u591a\u4e2a\u3002
\u5176\u4ed6\u6570\u5b66\u5bb6\u7ed9\u51fa\u4e86\u4e00\u4e9b\u4e0d\u540c\u7684\u8bc1\u660e\u3002\u6b27\u62c9\u5229\u7528\u9ece\u66fc\u51fd\u6570\u8bc1\u660e\u4e86\u5168\u90e8\u7d20\u6570\u7684\u5012\u6570\u4e4b\u548c\u662f\u53d1\u6563\u7684\uff0c\u6069\u65af\u7279\u00b7\u5e93\u9ed8\u7684\u8bc1\u660e\u66f4\u4e3a\u7b80\u6d01\uff0c\u54c8\u91cc\u00b7\u5f17\u65af\u6ed5\u4f2f\u683c\u5219\u7528\u62d3\u6251\u5b66\u52a0\u4ee5\u8bc1\u660e\u3002
\u5e94\u8be5\u662f\u5bf9\u7d20\u6570\u7684\u5b9a\u4e49\u6ca1\u6709\u7406\u89e3\u5427\u3002
\u7d20\u6570\uff0c\u662f\u5b9a\u4e49\u4e3a\u5728\u5927\u4e8e1\u7684\u81ea\u7136\u6570\u4e2d\uff0c\u9664\u4e861\u548c\u5b83\u672c\u8eab\u4ee5\u5916\u4e0d\u518d\u6709\u5176\u4ed6\u56e0\u6570\u3002
\u7b80\u800c\u8a00\u4e4b\uff0c\u7d20\u6570\u5c31\u662f\u53ea\u80fd\u88ab1\u548c\u5b83\u81ea\u5df1\u76f8\u4e58\u5f97\u5230\u7684\u6570\u3002\u6240\u4ee5\uff0c\u9664\u4e861\u548c\u5b83\u81ea\u5df1\u4e4b\u5916\uff0c\u5b83\u5bf9\u5176\u5b83\u6570\u53d6\u4f59\u6570\uff0c\u7ed3\u679c\u90fd\u4e0d\u662f0\u3002
\u540c\u65f6\uff0c\u65e0\u8bba\u4ec0\u4e48\u6570\uff0c\u9664\u4e86\u5b83\u81ea\u5df1\u4e4b\u5916\uff0c\u6700\u5927\u7684\u56e0\u6570\u80af\u5b9a\u662f\u5b83\u7684\u4e00\u534a\uff0c\u6240\u4ee5\u53ea\u9700\u8981\u67e5\u627e\u5230\u5b83\u7684\u4e00\u534a\u5c31\u53ef\u4ee5\u4e86\uff0c\u4e0d\u5fc5\u4ece1\u67e5\u627e\u5230\u5b83\u81ea\u5df1\u3002\u800c\u4e14\uff0c\u8fd9\u91cc\u662f\u627e\u7d20\u6570\uff0c\u5982\u679c\u5b83\u7684\u56e0\u6570\u5305\u62ec\u5b83\u81ea\u5df1\u7684\u4e00\u534a\u4e0e\u6570\u5b572\u7684\u8bdd\uff0c\u90a3\u5b83\u4e5f\u4e0d\u4f1a\u662f\u7d20\u6570\u4e86\uff0c\u6240\u4ee5\u67e5\u627e\u7684\u754c\u9650\u5b9a\u4e3a\u6bd4\u5982 i/2 \u662f\u4e0d\u4f1a\u6709\u9057\u6f0f\u7684\u3002
\u81f3\u4e8e\u4f60\u7684\u539f\u6765\u7684\u4ee3\u7801\u91cc\u4e3a\u4ec0\u4e48\u662f\u5b83\u81ea\u5df1\u5f00\u5e73\u65b9\uff0c\u6211\u6570\u5b66\u8bb0\u5f97\u4e0d\u591a\u4e86\uff0c\u4e0d\u662f\u592a\u6e05\u695a\u3002
\u7136\u540e\uff0c\u5c31\u662f\u6839\u636e\u5b9a\u4e49\u53bb\u5224\u65ad\u4e00\u4e2a\u6570\u662f\u4e0d\u662f\u7d20\u6570\uff0c\u90a3\u4e48\uff0c\u5c31\u5fc5\u987b\u8ba9\u5b83\u4e0e\u4ece2\u5230\u5b83\u7684\u4e00\u534a\u7684\u6240\u6709\u7684\u6570\u7684\u4f59\u6570\u90fd\u4e0d\u4e3a0\uff0c\u53cd\u5e94\u5230\u4ee3\u7801\u91cc\u5c31\u662f\u4e0d\u4ec5\u4ec5\u8981 \u300ci % n != 0\u300d\uff0c\u800c\u4e14\u8fd8\u8981\u5168\u90e8\u80fd\u9664\u7684\u6570\u90fd\u9664\u4e00\u904d\uff0c\u4e5f\u5c31\u662f\u300c n == k\u300d\uff0c\u8fd9\u4e2a\u65f6\u5019\uff0c\u624d\u80fd\u786e\u5b9a\u8fd9\u4e2a\u6570\u662f\u7d20\u6570\u4e86\u3002
#include #include int main(){ int i, k, n, m = 0; for (i = 101; i <= 200; i = i + 2) { k = i / 2; // \u88ab\u9664\u7684\u6570\uff0c\u5c0f\u4e8e\u7b49\u4e8e\u5b83\u7684\u4e00\u534a for (n = 2; n <= k; n++) { if (i % n == 0) break; else if (n == k) // \u8981\u628a\u4ece2\u5230k\u7684\u6570\u90fd\u9664\u4e00\u904d\u624d\u80fd\u786e\u5b9a { printf("%8d", i); m++; if (0 == m % 10) //\u628a\u8fd9\u4e2aif\u8f93\u51fa\u6362\u884c\u653e\u5230else if\u91cc\u9762\u6765\uff0c\u8981\u4e0d\u7136\u540e\u9762\u4f1a\u591a\u5f88\u591a\u7a7a\u884c printf("\n"); } } } printf("\n"); return 0;}\u8f93\u51fa\u622a\u56fe\uff1a
\u8fd8\u6709\u4e00\u5f20\u662f\u628a i \u7684\u521d\u59cb\u503c\u6539\u4e3a 3 \u7684\u8f93\u51fa\u622a\u56fe\uff0c\u53ef\u4ee5\u8bf4\u662f\u5f88\u89c4\u6574\u4e86\uff01
\u5982\u6709\u5e2e\u52a9\uff0c\u70e6\u8bf7\u70b9\u91c7\u7eb3\uff0c\u8c22\u8c22\uff01
解题思路:
首先先找出来100~200以内的所有整数,再让这些整数对除了1和它本身以外的数求余,如果有能整除的就不是素数,否则就为素数。
先找出来100到200的所有整数,都为i
用i去对除了1和它本身以外的数求余。
正确的代码:
#include<stdio.h>
int main()
{
int conut = 0;
int i = 0;
for(i=100; i<=200; i++)
{
int j = 0;
for(j=2; j<i; j++)
{
if(i%j == 0)
break;
}
if(j==i)
{
conut++;
printf("%d ", i);
}
}
printf("
");
printf("素数个数为:%d
", conut);
return 0;
}
第二个if语句的判断条件应该是j==i;而不是i%j 。
扩展资料:
实现的其他方法:
需要用到sort函数,也就是开平方根函数。头文件为#include<math.h>。 显而易见,任何一个数,每一对因子都是由这个数开平方后的数的左右各一个组成,所以,在求余过程中,只需要对从2到开平方之后的数求余即可。遇到可以整除的就不是素数,否则就为素数。
代码:
#include<stdio.h>
#include<math.h>
int main()
{
int count = 0;
int i = 0;
for(i=100; i<=200; i++)
{
int j = 0;
for(j=2; j<=sqrt(i); j++)
{
if(i%j == 0)
break;
}
if(j > sqrt(i))
{
count++;
printf("%d ",i);
}
}
printf("
");
printf("素数个数为:%d", count);
return 0;
}
应该是对素数的定义没有理解吧。
素数,是定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
简而言之,素数就是只能被1和它自己相乘得到的数。所以,除了1和它自己之外,它对其它数取余数,结果都不是0。
同时,无论什么数,除了它自己之外,最大的因数肯定是它的一半,所以只需要查找到它的一半就可以了,不必从1查找到它自己。而且,这里是找素数,如果它的因数包括它自己的一半与数字2的话,那它也不会是素数了,所以查找的界限定为比如 i/2 是不会有遗漏的。
至于你的原来的代码里为什么是它自己开平方,我数学记得不多了,不是太清楚。
然后,就是根据定义去判断一个数是不是素数,那么,就必须让它与从2到它的一半的所有的数的余数都不为0,反应到代码里就是不仅仅要 「i % n != 0」,而且还要全部能除的数都除一遍,也就是「 n == k」,这个时候,才能确定这个数是素数了。
#include <stdio.h>
#include <math.h>
int main()
{
int i, k, n, m = 0;
for (i = 101; i <= 200; i = i + 2)
{
k = i / 2; // 被除的数,小于等于它的一半
for (n = 2; n <= k; n++)
{
if (i % n == 0)
break;
else if (n == k) // 要把从2到k的数都除一遍才能确定
{
printf("%8d", i);
m++;
if (0 == m % 10) //把这个if输出换行放到else if里面来,要不然后面会多很多空行
printf("
");
}
}
}
printf("
");
return 0;
}
输出截图:
还有一张是把 i 的初始值改为 3 的输出截图,可以说是很规整了!
如有帮助,烦请点采纳,谢谢!
#include<stdio.h>
#include<math.h>
int main()
{ int i=100,n,k;
{for(i;i<=200;i++)
{k=sqrt(i);
for(n=2;n<=k;n++)
{if(i%n==0)
break;
}
if(n>k) printf("%d",i);
}
}
printf("
");
getch();
return 0;
}
逻辑错误,准确位置为14行,正确代码如下:
#include<stdio.h>
int main()
{
int i = 0;
for (i=100; i<=200; i++)
{
int j = 0;
for (j=2; j<=i-1; j++)
{
if (i%j == 0)
{
break;
}
}
if (j>=i)
{
printf("%d",i);
}
}
return 0;
}
扩展资料:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
质数的个数是无穷的。欧几里得的《几何原本》中有一个经典的证明。它使用了证明常用的方法:反证法。具体证明如下:假设质数只有有限的n个,从小到大依次排列为p1,p2,……,pn,设N=p1×p2×……×pn,那么,
是素数或者不是素数。
如果
为素数,则
要大于p1,p2,……,pn,所以它不在那些假设的素数集合中。
如果 为合数,因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以不可能被p1,p2,……,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。
其他数学家给出了一些不同的证明。欧拉利用黎曼函数证明了全部素数的倒数之和是发散的,恩斯特·库默的证明更为简洁,哈里·弗斯滕伯格则用拓扑学加以证明。
首先了解什么是素数,
素数只能被 1 和它本身所能整出呃数
既然你是求100——200之间的素数
首先做一个for循环,是从100——200的(i=100;i<=200;i++)
在做一个内循环,是从2到外循环的数,然后判断能否呗整出
(j=2;j<i;j++)
思路是这样的 我给你写一下程序
main()
{
int i,j;
for(i=100;i<=200;i++)
{
for(j=2;j<i;j++)
if(i%j==0)
break;
if(i==j)
printf("%d\n",i);
}
}
过程基本就这样,你可以根据3楼的改编一下,
他的过程更简单,这就需要更加理解这个东西的本质了
绛旓細int count = 0; // 璁℃暟鍣紝璁板綍姣忚宸茬粡杈撳嚭浜嗗灏戜釜鏁 printf("100 鍒 200 涔嬮棿鐨鎵鏈夌礌鏁颁负锛歕n");for (i = 100; i <= 200; ++i) { int is_prime = 1; // 鏍囪褰撳墠鏁版槸鍚︿负绱犳暟 for (j = 2; j < i; ++j) { if (i % j == 0) { // 濡傛灉瀛樺湪姣 1 鍜屾湰韬皬浣...
绛旓細浠ヤ笅鏄娇鐢╳hile鍑芥暟鐨C璇█绋嬪簭锛岀敤浜杈撳嚭100鍒200涔嬮棿涓嶈兘琚7鏁撮櫎鐨勬暟锛歩nclude <stdio.h> int main() { int num = 100;while (num <= 200) { if (num % 7 != 0) { printf("%d\n", num);} num++;} return 0;} 鍦ㄨ繖涓▼搴忎腑锛屾垜浠娇鐢ㄤ簡涓涓獁hile寰幆鏉ヨ凯浠100鍒200涔嬮棿鐨鎵鏈...
绛旓細杩欎釜绋嬪簭鎴戜滑闇瑕佺敤if璇彞鍜宖or璇彞锛屾牳蹇冩嬀浠100-200涓涓暟涓涓暟鍒ゆ柇锛屽綋鎴愮珛鏃跺垯鎵撳嵃鍑烘潵锛屽叿浣撲唬鐮佸涓嬨俰nclude "stdafx.h"include <cmath> include <iostream> define m 200 using namespace std;bool p[m + 1];int main(){ int n = (int)sqrt((double)m);p[0] = p[1] = 1;f...
绛旓細棣栧厛鍏堟壘鍑烘潵100~200浠ュ唴鐨勬墍鏈夋暣鏁,鍐嶈杩欎簺鏁存暟瀵归櫎浜1鍜屽畠鏈韩浠ュ鐨勬暟姹備綑,濡傛灉鏈夎兘鏁撮櫎鐨勫氨涓嶆槸绱犳暟,鍚﹀垯灏变负绱犳暟銆 鍏堟壘鍑烘潵100鍒200鐨鎵鏈夋暣鏁,閮戒负i 鐢╥鍘诲闄や簡1鍜屽畠鏈韩浠ュ鐨勬暟姹備綑銆 姝g‘鐨勪唬鐮: #include<stdio.h> int main() { int conut = 0; int i = 0; for(i=100; i<=200; ...
绛旓細include <stdio.h>void main(){int i,j,n=0,s=0;for(i=100;i<=200;i++){for(j=2;j<=i/2;j++)if(i%j==0) break;if(j>i/2){printf("%d ",i);s+=i;n++;if(n%10==0) printf("\n");}}printf("\nS=%d",s);} ...
绛旓細绱犳暟鏄彧鏈1鍜岃嚜韬墠鑳芥暣闄ょ殑鏁般傝皟鐢ㄨ嚜瀹氫箟鐨勫嚱鏁皃rime锛屽100~200闂寸殑濂囨暟杩涜鍒ゆ柇锛屾槸绱犳暟鍒杈撳嚭銆備妇渚嬩唬鐮佸涓嬶細include "stdio.h"int prime(int n){//鍒ゆ柇100~200闂寸殑鏁版槸鍚︿负绱犳暟int i;if(!(n&1))return 0;for(i=3;i*i<=n;i+=2)if(!(n%i))return 0;return 1;}int main(int...
绛旓細100鈥斺200涔嬮棿婊¤冻濡備笅涓や釜鏉′欢鐨勬暟(瑕佹槸绱犳暟,杩樿鏈夋暟瀛3):\n"); for (int i = 100; i <= 200; i++){ if (isPrimeNumber(i) && contains3(i)) printf("%4d", i); } getchar(); return 0;}2. 杩愯缁撴灉濡備笅:甯屾湜瀵逛綘鏈夊府鍔﹡...
绛旓細bool is=true;for(int i =100;i<=200;i++)//璁㊣浠100寰幆鍒200{for(int j=2;j<sqrt(i);j++)//璁㎎浠2寰幆鍒板綋鍓嶈鍒ゆ柇鐨処鐨勫肩殑寮鏍瑰彿鎴栬匢-1{if(i%j==0)//閫愪釜杩涜鍒ゆ柇 鍋囧J鑳借I鏁撮櫎 璇存槑涓嶆槸绱犳暟 淇敼IS鍊间负FALSE 閫鍑哄惊鐜 濡傛灉鏄礌鏁 鍒橧S鐨勫间粠澶磋嚦灏鹃兘涓篢RUE 璇存槑鏄...
绛旓細寰幆鍙橀噺)鏁撮櫎锛屽垯涔熸槸return 0锛屾渶鍚庯紝娣诲姞杩斿洖璇彞return 1銆傜劧鍚庡湪main鍑芥暟涓缓绔嬩竴涓互100涓哄垵濮嬪硷紝娴嬭瘯鏉′欢涓<200锛屾闀夸负1鐨刦or寰幆锛屽惊鐜綋閲屾墽琛岀殑鏄互寰幆鍙橀噺涓哄弬鏁拌皟鐢╢un鍑芥暟锛屽鏋滃畠鐨勮繑鍥炲兼槸1锛屽垯杈撳嚭寰幆鍙橀噺鐨勫硷紝骞跺缁熻鍙橀噺鐨勫煎姞1锛屾渶鍚庯紝寰幆缁撴潫鍚庯紝杈撳嚭缁熻鍙橀噺鐨勫笺
绛旓細include<math.h> void main(){ int isprime(int n);int n,m;for(m=100;m<=200;m++){ if(isprime(n)){ printf("%4d",m);n++;if(n%5==0) putchar('\n');} } printf("%d\n",n);} int isprime(int n){ int k,i;for(k=sqrt(n),i=2;i<k;i++)if(n%k==0) ...