c語言1000以內素數
A. c語言求1000以內素數
你程序的問題出現在
while(num2<num1)
{
num2=2;
num=num1%num2;
num2++;
a=isPrime(num);
if(a==1)
printf("%5d",num1);
}
假設num1=4的時候,你沒次進循環num2=2,num2++,num2=3;再次進循環num2=2,num2++,num2=3;因此一直有num2<num1成立,這就進入了死循環。這個程序不難寫,如果你需要寫出程序,hi我。
B. c語言編寫程序,輸出1000內的所有素數, 每行顯示10個數
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/*****************************************************************
*本程序用來計算1000內質數有哪些及一共有哪些。
*
*知識點:什麼是質數?及只能被本身和1整除的整數。
*
*時間:2018.10.22
*****************************************************************/
int main(void)
{
int i,j,result = 0,sum = 0; //i-循環變數和被判斷數 j-循環變數和判斷數 result-驗證是否為質數的返回值 sum-質數總量計數
for (i = 2;i <= 1000;i++) //第一個循環用來取出被判斷數 從2開始到1000
{
for (j = 2; j <= sqrt(i) + 1;j++) //第二個循環是用來判斷這個數是否為質數並返回,從2開始至被判斷數開根後+1. sqrt(i)後面不+1 會把質數2 3丟掉
{
if (i%j == 0 && i != j) //如果被判斷數用2-被判斷數來取余,如果余數為0 且不是被自已整除那麼這個數一定不是質量直接返回
{
result = 0; //判斷出是質數後返回前必須給返回值賦0值,0代表非質數 1代表質數
break;
}
result = 1;
}
if (result == 1) //如果此數為質數 質數總量+1後並列印 把result返回值初始化准備下一個循環判斷。
{
sum++;
printf("第%d個質數:%d \n",sum,i);
result = 0;
}
}
return 0;
}
C. 編寫函數,求1000以內的所有素數
#include<stdio.h>
#defineMAX1000
intisPrime(intn){/*判斷素數函數*/
inti;
intflag=1;
for(i=2;i<n;i++)/*從2循環至自身,如果能被其間任一數整除,則循環結束,其為非素數*/
if(n%i==0){
flag=0;
break;
}
returnflag;
}
intmain(void){
inti;
printf("1000以內的所有素數: ");
for(i=2;i<MAX;i++){/*1不是素數,所以從2開始*/
if(isPrime(i))
printf("%d ",i);
}
putchar(' ');
return0;
}
執行結果
D. c語言:輸出1000以內所有的素數,並統計素數的個數,要求每行輸出8個數。
//輸出1000以內的素數,統計素數的個數,要求每行輸出8個數
#include<stdio.h>
intmain()
{
inti;
intcount=0;//記錄共有多少素數
intcount1=0;//每8個素數就打一個回車
intsushu(inti);//判定素數的函數
for(i=2;i<1000;i++)//取2到999之間的素數
{
if(sushu(i))
{
count++;
count1++;
printf("%4d",i);
}
if(count1==8)//每8個素數打一個回車
{
printf(" ");
count1=0;
}
}
printf("共有%2d個素數",count);
}
intsushu(intn)//這是判斷一個數n是否是素數的函數
{
inti;
for(i=2;i<n;i++)
if(n%i==0)
return0;
return1;
}
附有簡單的注釋,望採納
E. 怎麼用C語言求一千以內的素數
#include<stdio.h>
int main(void)
{
int x;
int y;
int count=0;
for(x=1;x<1000;x++)
{
y=x;
if(y>1)
{
while(y>=1)
{
if(x%y==0)
count++;
y--;
}
if(y==0&&count==2)
{
printf("%d\n",x);
}
count=0;
}
else printf("1\n");
}
return 0;
}
F. c語言求1000以內的素數(素數是只能被1和它本身整除的數)
//這個比較靈活,可以按你的需要輸入N的值,求出N以內的所有素數//
#include<stdio.h>
#include<math.h>
void main()
{
int temp,k;
int N=0,n;
printf("Input Call:\n");
scanf("%d",&N);
printf("%d以內的素數有",N);
getchar();
if(N<=1)printf("Wrong!!!");
else
{
for(n=2;n<=N;n++)
{
temp = 0;
for(k=2;k<=sqrt(n)+1;k++)
{
if(n%k==0)
{
k=n;
temp=1;
}
}
if(temp==0)
{
printf("%d ",n);
}
}
}
printf("\n");
}
G. 用基礎c語言,輸出1000以內的所有素數,每行輸出5個,怎麼寫
for(i=0;i<1000;i++)
{
if( 判斷是否素數(i) == true)
{
printf("%4d\t",i);
j++;
if(j==5)
{
printf("\n");
j=0;
}
}
}
H. 用C語言輸出1000以內的全部素數
如下圖所示:
I. 用c語言求1000以內的素數(素數是只能被1和它本身整除的數)
int i,j,k;
for(i=2;i<=1000;i++)
{
k=0;
for(j=2;j<i;j++)
{
if(i%j==0)
{
k=1;
break;
}
}
if(k=0)
printf("%d",i);
}
主體這樣,前綴什麼的自己加上就好了。
J. 編寫一個程序,輸出1~1000之內所有的素數(注意:素數即質數)及個數(C語言)
源代碼如下:
#include <stdio.h>
#include <math.h>
void main()
{
int n=0, i, j,w,k;
for(i=2;i<=1000; i++)
{
w=1;
k=sqrt(i);
for (j=2; j<=k; j++)
if (i%j==0) {w=0;break;}
if (w) {
++n;
if (n%10==0) printf("%d ",i);
else printf("%d ",i);
}
(10)c語言1000以內素數擴展閱讀
1、素數使用for循環查找2-1000以內的所有素數,循環次數為999次,在for循環中添加一個移位寄存器用以存儲所有的素數,其初始值為一個空數組。
2、在循環內部逐個數判斷是否為素數,若是素數,則使用"數組插入.vi"函數添加到移位寄存器的數組中,否則,移位寄存器中的值保留為上次的值。