用筛选法求100内的素数,每行输出10个。 用筛选法求100内的素数,每行输出10个。

\u7528\u7b5b\u9009\u6cd5\u6c42100\u4e4b\u5185\u7d20\u6570

\u9996\u5148 \u4f60\u8fd9\u4e2a\u5e76\u4e0d\u662f\u7b5b\u9009\u6cd5
\u5176\u6b21 \u6309\u7167\u4f60\u7684\u4ee3\u7801 \u5e76\u6ca1\u6709\u7528\u5230\u6240\u8c13\u7684a[i]
\u6240\u4ee5 \u8fde\u540c\u4e0a\u9762\u7684
for (i = 1; i <= 100; i++)
\u4e00\u8d77\u6ce8\u91ca\u6389\u5c31\u597d

#include
#include
#define N 10000000 //\u4f60\u8981\u6c42\u7684\u8303\u56f4\u7684\u6700\u5927\u503c
int a[N];
void prime(long n) //\u7528\u7b5b\u6cd5\u5c06\u4e0d\u662f\u7d20\u6570\u7684\u503c\u7f6e0
{
long i,j;
a[1]=0;
for(i=2;i<n;i++)
a[i]=1;
for(i=2;i<n/2;i++)
if(a[i])
for(j=i*2;j<n;j=j+i)
a[j]=0;
}
int main()
{
int m,n,sum,i;
clock_t start,finish;
while(scanf("%d",&n))
{
start=clock();
prime(n);
sum=1;
for(i=3;i<=n;i++)
if(a[i])
sum++;
printf("%d\n",sum);
finish=clock();
printf("%lf\n",(double)(finish-start));
}
return 0;
}

\u53ea\u8981\u4f60\u6709\u8db3\u591f\u7684\u5185\u5b58,\u4f60\u53ef\u4ee5\u5c06N\u5b9a\u4e49\u5f97\u8db3\u591f\u5927,\u90a3\u6837\u4f60\u5c31\u80fd\u6c42\u66f4\u5927\u7684\u8303\u56f4\u5185\u7684\u7d20\u6570,\u6211\u8fd9\u4e2a\u53ea\u662f\u7edf\u8ba1\u7d20\u6570\u7684\u4e2a\u6570,\u4f60\u8981\u8f93\u51fa\u7684\u8bdd\u4e5f\u53ef\u4ee5,\u968f\u4fbf\u6539\u4e00\u4e0b\u5c31\u884c

#include
#include
#define N 10000000 //\u4f60\u8981\u6c42\u7684\u8303\u56f4\u7684\u6700\u5927\u503c
int a[N];
void prime(long n) //\u7528\u7b5b\u6cd5\u5c06\u4e0d\u662f\u7d20\u6570\u7684\u503c\u7f6e0
{
long i,j;
a[1]=0;
for(i=2;i<n;i++)
a[i]=1;
for(i=2;i<n/2;i++)
if(a[i])
for(j=i*2;j<n;j=j+i)
a[j]=0;
}
int main()
{
int n,i;

while(scanf("%d",&n))
{
prime(n);

for(i=2;i<=n;i++)
if(a[i])
printf("%d\t",i);

}
return 0;
}

\u8fd9\u4e2a\u53ef\u4ee5\u5c0610000000\u4ee5\u5185\u7684\u6240\u6709\u7d20\u6570\u90fd\u80fd\u8f93\u51fa
\u4f60\u53ea\u8981\u6c42100\u4ee5\u5185\u7684,\u5728\u8fd0\u884c\u7a0b\u5e8f\u540e\u8f93\u5165100,\u56de\u8f66\u5373\u53ef

\u6211\u4e0b\u9762\u7684\u8fd9\u4e2a\u597d\u50cf\u6ca1\u7528\u5230\u522b\u7684\u5427,\u6211\u4e0a\u9762\u7684\u53ea\u662f\u4e3a\u4e86\u8f93\u51fa\u65f6\u95f4\u624d\u5199\u7684,\u4f60\u770b\u4e0b\u9762\u7684\u5c31\u884c\u4e86

:判断1-100之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
2.程序源代码:
#include "math.h"
main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=1;m<=100;m++)
{ k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap) {printf("%-4d",m);h++;
if(h%10==0) //输出十个数后换行
printf("\n");
}
leap=1;
}
printf("\nThe total is %d",h);
}

二步走:
1.100以内的算法
for(i=2;i<100;i++)//遍历100以内的数
{for(j=2;j<i;j++)
if(i%j==0)break;//若不是素数,跳出内循环
if(j>=i)a[k++]=i;//a[k]数组用来存放素数i
}
2.每行输出10个数
for(k=0;k<100;k++)
if(k%10==0)printf("%c",'\n');//当数组中的数为10的倍数时就输出换行符‘\n',

#include<stdio.h>
#include<time.h>
#define N 10000000 //你要求的范围的最大值
int a[N];
void prime(long n) //用筛法将不是素数的值置0
{
long i,j;
a[1]=0;
for(i=2;i<n;i++)
a[i]=1;
for(i=2;i<n/2;i++)
if(a[i])
for(j=i*2;j<n;j=j+i)
a[j]=0;
}
int main()
{
int m,n,sum,i;
clock_t start,finish;
while(scanf("%d",&n))
{
start=clock();
prime(n);
sum=1;
for(i=3;i<=n;i++)
if(a[i])
sum++;
printf("%d\n",sum);
finish=clock();
printf("%lf\n",(double)(finish-start));
}
return 0;
}

只要你有足够的内存,你可以将N定义得足够大,那样你就能求更大的范围内的素数,我这个只是统计素数的个数,你要输出的话也可以,随便改一下就行

#include<stdio.h>
#include<time.h>
#define N 10000000 //你要求的范围的最大值
int a[N];
void prime(long n) //用筛法将不是素数的值置0
{
long i,j;
a[1]=0;
for(i=2;i<n;i++)
a[i]=1;
for(i=2;i<n/2;i++)
if(a[i])
for(j=i*2;j<n;j=j+i)
a[j]=0;
}
int main()
{
int n,i;

while(scanf("%d",&n))
{
prime(n);

for(i=2;i<=n;i++)
if(a[i])
printf("%d\t",i);

}
return 0;
}

这个可以将10000000以内的所有素数都能输出
你只要求100以内的,在运行程序后输入100,回车即可

我下面的这个好像没用到别的吧,我上面的只是为了输出时间才写的,你看下面的就行了

#include<iostream>
using namespace std;
int prime(int n)//求素数过程,是返回1,不是返回0
{
for(int i=2;i<int(n);i++)
if (n%i==0)return 0;
return 1;
}
void main()
{
int i=0;
for(int j=2;j<100;j++)
{if(prime(j)==1){cout<<j<<" ";i++;}
if (i%10==0)cout<<endl;}
}

  • 鐢ㄧ瓫閫夋硶姹100鍐呯殑绱犳暟,姣忚杈撳嚭10涓
    绛旓細1.绋嬪簭鍒嗘瀽锛氬垽鏂绱犳暟鐨勬柟娉曪細鐢ㄤ竴涓暟鍒嗗埆鍘婚櫎2鍒皊qrt(杩欎釜鏁)锛屽鏋滆兘琚暣闄わ紝鍒欒〃鏄庢鏁颁笉鏄礌鏁帮紝鍙嶄箣鏄礌鏁般2.绋嬪簭婧愪唬鐮侊細include "math.h"main(){ int m,i,k,h=0,leap=1;printf("\n");for(m=1;m<=100;m++){ k=sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0){leap=0...
  • C璇█绋嬪簭璁捐棰:鐢ㄧ瓫閫夋硶姹100浠ュ唴鐨勭礌鏁
    绛旓細绱犳暟銆傚湪涓涓ぇ浜1鐨勮嚜鐒舵暟涓紝闄や簡1鍜屾鏁存暟鑷韩澶栵紝涓嶈兘琚叾浠栬嚜鐒舵暟鏁撮櫎鐨勬暟銆傜礌鏁板湪鏁拌涓湁鐫寰堥噸瑕佺殑鍦颁綅銆傛瘮1澶т絾涓嶆槸绱犳暟鐨勬暟绉颁负鍚堟暟銆1鍜0鏃㈤潪绱犳暟涔熼潪鍚堟暟銆鐢ㄧ瓫閫夋硶姹100浠ュ唴鐨勭礌鏁鐨勬簮浠g爜濡備笅 include "stdio.h"include "stdlib.h"main(){ int i,j;for(i=2;i<99; i++){...
  • C璇█缂栫▼:鐢ㄧ瓫閫夋硶姹100涔嬪唴鐨勭礌鏁,瑕佹眰姣忛殧10琛岃緭鍑恒傛庝箞鍐?_鐧 ...
    绛旓細j,tem,n;\x0d\x0afor(;;)\x0d\x0a{\x0d\x0asystem("cls");\x0d\x0aprintf("璇疯緭鍏ヨ姹绱犳暟鐨勪笂闄愪负锛歕n");\x0d\x0ascanf("%d",&n);\x0d\x0aprintf("2");\x0d\x0afor(i=3;
  • C璇█楂樻墜,甯府蹇,鍗佸垎鎰熻阿!缂栧啓绋嬪簭鐢ㄧ瓫閫夋硶姹備竴鐧涔嬪唴鐨勭礌鏁,姣忚杈...
    绛旓細include<math.h> int main(void){ int num[100];int i,j,N;for(i=0;i<100;i++)/*鍒濆鍖栨暟琛*/ num[i]=i+1;num[0]=0;N=10;/*10鏄100寮骞虫柟寰楁潵鐨*/ for(j=1;;){/*j璁板綍褰撳墠鎵浣跨敤鐨勭礌鏁*/ for(i=num[j]*(num[j]-1);i<1000;i++){ if(num[i]%num[j]==0)...
  • 鐢ㄧ瓫閫夋硶姹100涔嬪唴鐨勭礌鏁,姣忚杈撳嚭10涓
    绛旓細鎵*鐨勮〃绀哄幓鎺,鎸夊幓鎺1,鍐嶅幓鎺2鐨勫嶆暟,3鐨勫嶆暟,5鐨勫嶆暟,7鐨勫嶆暟,11鐨勫嶆暟,13鐨勫嶆暟 鏉ュ垹闄ゅ氨鍙互,鍙鍊13灏卞彲浠ヤ簡 1* 2 3 4* 5 6* 7 8* 9* 10 11 12* 13 14* 15* 16* 17 18* 19 20 21* 22* 23 24* 25* 26* 27* 28* 29 30 31 32* ...
  • 鍦–++涓鐢ㄧ瓫閫夋硶姹1-100鐨勭礌鏁
    绛旓細鍥炵瓟锛歠or(int i=2;i<100;i++){for(int j=2;j<(i-1);j++){if(mod(i,j)=0){<%= i%>}}} 杩樻湁涓绉嶆槸寮骞虫柟鐨勬柟娉曘傘傛湁鍏磋叮鍘荤湅鐪
  • 濡備綍鐢ㄧ瓫閫夋硶姹鍑100浠ュ唴鐨勭礌鏁
    绛旓細鐢ㄧ瓫娉姹傜礌鏁鐨勫熀鏈濇兂鏄細鎶婁粠1寮濮嬬殑銆佹煇涓鑼冨洿鍐呯殑姝f暣鏁颁粠灏忓埌澶ч『搴忔帓鍒楋紝 1涓嶆槸绱犳暟锛棣栧厛鎶婂畠绛涙帀銆傚墿涓嬬殑鏁颁腑閫夋嫨鏈灏忕殑鏁版槸绱犳暟锛岀劧鍚庡幓鎺夊畠鐨勫嶆暟銆備緷娆$被鎺紝鐩村埌绛涘瓙涓虹┖鏃剁粨鏉熴傚鏈夛細1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...
  • 鐢ㄧ瓫閫夋硶姹100涔嬪唴鐨勭礌鏁銆 姣忚杈撳嚭10涓绱犳暟,姣忎釜绱犳暟鍗5鍒,闈犲彸瀵 ...
    绛旓細int a[101],m,n,i,b=1,flag;for (i=0;i<=100;i++)a[i]=i;printf ("2 ");for (i=3;i<=100;i+=2){ m=(int)sqrt(i);flag=0;for (n=2;n<=m;n++){ if ( (a[i] % n) == 0 ){ flag=1;break;} } if(flag==0){ printf("%d ",a[i]);b++;if (b ...
  • C璇█:鐢ㄧ瓫閫夋硶姹100浠ュ唴鐨勭礌鏁銆
    绛旓細//绛涢夋硶 include<iostream.h> include<iomanip.h> include<cmath> void main(){ int i,j,n,a[101]; //瀹氫箟a鏁扮粍鍖呭惈101涓厓绱 for(i=1;i<=100;i++) //a銆0銆戜笉鐢紝鍙敤a銆1銆憕a銆100銆憑 a[i]=i; //浣縜銆1銆憕a銆100銆戠殑鍊间负1~100 } a[1]=0; //鍏堟寲...
  • C璇█缂栫▼:鐢ㄧ瓫閫夋硶姹100涔嬪唴鐨勭礌鏁,瑕佹眰姣忛殧10琛岃緭鍑恒傛庝箞鍐?_鐧 ...
    绛旓細printf("璇疯緭鍏ヨ姹傜礌鏁扮殑涓婇檺涓猴細\n");scanf("%d",&n);printf("2");for(i=3;i<=n;i+=2){ tem=0;for(j=2;tem==0&&j<sqrt(i);j++)if(i%j==0)tem=1;if(tem==0)printf(",%d",i);} printf("\n");system("pause");} } //璇绱犳暟鐨勬眰娉曪紝姣旂涓绉嶆棤璁烘槸鍦ㄦ椂闂...
  • 扩展阅读:筛选法求100以内素数c ... 用筛法求100以内素数 ... 筛选法求素数流程图 ... c语编程求100以内素数 ... c语言筛选100以内素数 ... 100以内的质数 ... 筛选法求素数python ... 筛选法求最大公因数 ... 筛选法求小于n的素数 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网