c语言,用筛选法求100之内的素数?请好好解释下怎么求解。急。明天要交。

\u89e3\u91ca\u4e00\u4e0bc\u8bed\u8a00\u7b5b\u9009\u6cd5\u6c42\u7d20\u6570

\u5982\u679c\u5b9a\u4e49\u4e3a a[100]
\u90a3\u4e48\u8be5\u6570\u7ec4\u7684\u4e0b\u6807\u8303\u56f4\u662f\uff1a
a[0] ~ a[99]
\u4e3a\u4e86\u7528 a[100] \u5c31\u4e0d\u5f97\u4e0d\u5b9a\u4e49\u5230101

\u8fd9\u53e5\u8868\u793a\u6267\u884c\u4ee5\u4e0b100\u884c\u4ee3\u7801\uff1a
a[1]=1;
a[2]=2;
a[3]=3;
\u2026\u2026
a[100]=100;

\u7528\u5faa\u73af\u8bed\u53e5\u5199\u5c31\u662f\uff1a
for(i=0;i<101;i++)
a[i]=i;

\u6bcf\u5f53\u8f93\u51fa\u5230\u7b2c10\u4e2a\uff0c20\u4e2a\u2026\u2026 90\u4e2a \u7684\u65f6\u5019\u5c31\u6362\u884c
\u800c10\uff0c20 \u2026\u2026 90 \u8fd9\u4e9b\u6570\u6709\u4e00\u4e2a\u5171\u540c\u7279\u5f81\uff1a
\u4ed6\u4eec % 10 ==0
\u6240\u4ee5\u53ef\u4ee5\u8fd9\u6837\uff1a
for (i=1 ; i<101 ; i++)
{
printf("%d ",a[i]);
if (i%10==0) printf("\n");
}
*********************************
a[i]\u4e0d\u662f\u4e00\u4e2a\u53d8\u91cf
\u5f53i\u5206\u522b\u53d61\uff0c2\uff0c3\u2026\u2026\uff0c100
\u7684\u65f6\u5019
a[i]\u8868\u793a\u7684\u662fa[1],a[2],a[3],\u2026\u2026a[100] \u8fd9100\u4e2a\u53d8\u91cf

#include
using namespace std;
int main()
{
int prime(int);
int n;
cout<<"input an integer:";
cin>>n;
if(prime(n))
{
cout<<n<<"is a prime."<<endl;
}
else
{
cout<<n<<"is not a prime."<<endl;
}
return 0;
}

int prime(int n)
{
int flag=1,i;
for(i=2;i<n/2&&flag==1;i++)
{
if(n%i==0)
{
flag=0;
}
return(flag);
}
}



//\u7b5b\u9009\u6cd5
#include
#include
#include
void main()
{
int i,j,n,a[101]; //\u5b9a\u4e49a\u6570\u7ec4\u5305\u542b101\u4e2a\u5143\u7d20
for(i=1;i<=100;i++) //a\u30100\u3011\u4e0d\u7528\uff0c\u53ea\u7528a\u30101\u3011~a\u3010100\u3011
{
a[i]=i; //\u4f7fa\u30101\u3011~a\u3010100\u3011\u7684\u503c\u4e3a1~100
}
a[1]=0; //\u5148\u6316\u6389a\u30101\u3011
for(i=2;i<sqrt(100);i++)
{
for(j=i+1;j<=100;j++)
{
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0; //\u628a\u975e\u7d20\u6570\u6316\u6389
}
cout<<endl;
}
for(i=1,n=0;i<=100;i++)
{
if(a[i]!=0) //\u9009\u51fa\u503c\u4e0d\u4e3a0\u7684\u6570\u7ec4\u5143\u7d20\uff0c\u5373\u7d20\u6570
{
cout<<setw(5)<<a[i]<<" "; //\u8f93\u51fa\u7d20\u6570\uff0c\u57df\u5bbd\u4e3a5
n++; //\u8ba1\u6570\u5668\uff0c\u7d2f\u8ba1\u672c\u884c\u5df2\u8f93\u51fa\u7684\u6570\u636e\u4e2a\u6570
}
if(n==10) //\u8f93\u51fa10\u4e2a\u6570\u540e\u6362\u884c
{
cout<<endl;
n=0;
}
}
cout<<endl;
}

void calc_prime()
{
for (int i = 2;i<=MaxPrime;i++) isprime[i] = 1;
int i = 2;
while (i < MaxPrime)
{
while (i <= MaxPrime && !isprime[i]) i++;
if (!isprime[i]) break;
prime[++pprime] = i;
isprime[i] = pprime;
int j = i + i;
while (j <= MaxPrime)
{
isprime[j] = 0;
j += i;
}
i++;
}
//for (int i = 0;i<=100;i++) cout << prime[i] << " ";
//cout << endl;
}

就是在一定范围内每次筛去质数的倍数,最后剩下来的就是质数,具体可以参考我的程序,有不懂的可以问我

#include<math.h>
#define N 101
main(){
int i,j,line,a[N];

for(i=1;i<N;i++) a[i]=i; /*初始化数组*/

for(i=2;i<sqrt(N);i++){
for(j=i+1;j<N;j++){
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
}
}
printf("\n");

for(i=2,line=0;i<N;i++){
if(a[i]!=0){
printf("%5d",a[i]);
line++;
}
if(line==10){
printf("\n");
line=0;
}
}
printf("\n");
}

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main(){
int m,k,i,n=0;
bool x;
for(m=100;m<=200;m+=2){
x=true;
k=int(sqrt(m));
for(i=2;i<=k;i++){
if(m%i==0){
x=false;
break;
}
if(x)
{
cout<<setw(5)<<m;
n+=1;
}
if(n%10==0)
cout<<endl;
}
cout<<endl;
return 0;
}

}
这题是求100到200之间的素数..楼主可以照我这个搬..我刚做的..也运行过了。 .可以的..

  • C璇█绋嬪簭璁捐棰:鐢ㄧ瓫閫夋硶姹100浠ュ唴鐨勭礌鏁
    绛旓細绱犳暟銆傚湪涓涓ぇ浜1鐨勮嚜鐒舵暟涓紝闄や簡1鍜屾鏁存暟鑷韩澶栵紝涓嶈兘琚叾浠栬嚜鐒舵暟鏁撮櫎鐨勬暟銆傜礌鏁板湪鏁拌涓湁鐫寰堥噸瑕佺殑鍦颁綅銆傛瘮1澶т絾涓嶆槸绱犳暟鐨勬暟绉颁负鍚堟暟銆1鍜0鏃㈤潪绱犳暟涔熼潪鍚堟暟銆鐢ㄧ瓫閫夋硶姹100浠ュ唴鐨勭礌鏁扮殑婧愪唬鐮佸涓 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璇█:鐢ㄧ瓫閫夋硶姹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; //鍏堟寲...
  • 鍦–++涓鐢ㄧ瓫閫夋硶姹1-100鐨绱犳暟
    绛旓細鍥炵瓟锛歠or(int i=2;i<100;i++){for(int j=2;j<(i-1);j++){if(mod(i,j)=0){<%= i%>}}} 杩樻湁涓绉嶆槸寮骞虫柟鐨勬柟娉曘傘傛湁鍏磋叮鍘荤湅鐪
  • 濡備綍鐢C璇█鐨勭瓫閫夋硶姹100浠ュ唴鐨勭礌鏁?
    绛旓細浠ヤ笅涓烘櫘閫氱殑绛涜川鏁娉曠殑绋嬪簭锛歕x0d\x0a#include\x0d\x0a#include\x0d\x0aconst int N=101;\x0d\x0aint a[N],b[N];\x0d\x0aint main(void)\x0d\x0a{\x0d\x0aint i,j;\x0d\x0aa[0]=a[1]=1;\x0d\x0afor(i=2;i=2;j--)a[j*i]=1;\x0d\x0a}\x...
  • C璇█缂栫▼:鐢ㄧ瓫閫夋硶姹100涔嬪唴鐨绱犳暟,
    绛旓細C璇█缂栫▼:鐢ㄧ瓫閫夋硶姹100涔嬪唴鐨绱犳暟, #include<stdio.h>#include<math.h>voidmain(){inti,t,m;for(m=1;m<=100;m=m+2){t=sqrt(m);for(i=2;i<=t;i++)if(m%i==0)break;if(i>t)printf("%disaprimenumber.\n",m);elseprintf("%... #include <stdio.h>#include <math.h>void main(...
  • 鐢ㄧ瓫閫夋硶姹100涔嬪唴鐨绱犳暟c璇█
    绛旓細鐢ㄧ瓫閫夋硶姹100涔嬪唴鐨绱犳暟c璇█濡備笅锛氫粈涔堟槸绛涢夋硶锛氱瓫閫夋硶鍙堢О绛涙硶锛屽叿浣撳仛娉曟槸:鍏堟妸N涓嚜鐒舵暟鎸夋搴忔帓鍒楄捣鏉ャ1涓嶆槸璐ㄦ暟锛屼篃涓嶆槸鍚堟暟锛岃鍒掑幓銆傜浜屼釜鏁2鏄川鏁扮暀涓嬫潵锛岃屾妸2鍚庨潰鎵鏈夎兘琚2鏁撮櫎鐨勬暟閮藉垝鍘汇2鍚庨潰绗竴涓病鍒掑幓鐨勬暟鏄3锛屾妸3鐣欎笅锛屽啀鎶3鍚庨潰鎵鏈夎嚜琚3鏁撮櫎鐨勬暟鑰呭幓銆3鍚庨潰绗竴...
  • 鐢C璇█绛涢夋硶姹100浠ュ唴鐨勭礌鏁
    绛旓細鍏堝缓绔嬩竴涓暟缁勮祴鍊间负2-100 鍐嶇敤浜岄噸寰幆鏍囪姣忎釜绱犳暟鐨勫嶆暟涓0锛屾渶鍚庢墦鍗板嚭涓鸿鏍囪涓嶄负0鐨勬暟鍗充负绱犳暟 include "stdio.h"define Size 99 int main(){ int a[Size],i,j;for(i=0;i<Size;i++)a[i]=i+2;for(i=0;i<Size;i++){ if(a[i]){ for(j=i+1;j<Size;j++)if(a[j...
  • C璇█缂栫▼:鐢ㄧ瓫閫夋硶姹100涔嬪唴鐨绱犳暟,
    绛旓細//璇ョ礌鏁扮殑姹傛硶锛姣旂涓绉嶆棤璁烘槸鍦ㄦ椂闂村鏉傚害杩樻槸绌洪棿澶嶆潅搴︿笂閮借绠鍗曠殑鐨勫 //绱犳暟锛氬叾瀹炲伓鏁颁腑闄や簡2浠ュ閮戒笉鏄礌鏁帮紝鍥犳鍙瘮杈冨鏁板嵆鍙紱褰撳垽鏂竴涓暟鏄笉鏄礌鏁版椂锛//寰寰涓嶅繀绠楁槸鍚﹁兘琚2鈥攏-1涓换鎰忎竴涓暟鏁撮櫎 //鍙姣旇緝鏄惁鑳借2鈥攕qrt锛坣锛変腑鐨勪换鎰忎釜鏁版暣闄ゅ嵆鍙紒//褰撹兘琚叾涓箣涓...
  • 鍦C璇█涓,鐢ㄧ瓫閫夋硶姹100涔嬪唴鐨绱犳暟?鐢ㄥ绉嶆柟娉曟眰,璇烽檮甯︽祦绋嬪浘...
    绛旓細// 浜х敓涓浜涙爣璁帮紝鏍囪璇ュ鍊兼槸鍚︿负绱犳暟 void findPrimeLabel(int range,int *labelArray);int main(){ // 澹版槑鏈澶ц寖鍥 int range;// 澹版槑涓涓彲浠ュ绾虫瘮杈冨绱犳暟鐨勬暟缁 int primeArray[100];int i;printf("Input the max range:\n");scanf("%d",&range);// 鍋囪宸ヤ綔姝e父锛岄偅涔坧rimeArray...
  • 扩展阅读:猫咪100种行为语言图解 ... 用数组求100之内的素数 ... c语言筛选100以内素数 ... 怎么筛选自己需要的数据 ... c++编程 ... excel筛选的三种方法 ... c语言求1到100偶数之和 ... c语编程求100以内素数 ... c语言求100之内的素数之和 ...

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