本文目錄一覽:
c語言求素數
演算法錯誤。
錯誤1、
關於i的循環、j的循環是嵌套循環,缺少大括弧。
錯誤2、
if(i%j==0)
break;
else printf(“%d\t”,i);
i是偶數時沒問題,i是奇數時問題就來了。是合數的奇數只有遇到它最小的質因數才結束,之前一次次輸出。是素數的奇數更是每次都輸出。結果輸出了整屏整屏的數。
修改:
#include stdio.h
void main()
{
int i,j;//k、m、n都沒有用到,去掉
for(i=100;i=9999;i++)
{//添加大括弧
for(j=2;ji;j++)
if(i%j==0)
break;
if(j=i) printf(“%d\t”,i);//else改為if(j=i)
}//添加大括弧
}
c語言求解 求100以內所有素數並輸出
#includestdio.h
#includemath.h
void main()
{
int m,k,n=0;
for(m=1;m=100;m=m+2)//因為偶數肯定不會是素數 所以只是需要判斷奇數的情況 演算法簡化
{
k=sqrt(m);//sqrt是開平方
for(i=2;i=k;i++)
if(m%i==0)break;
if(i=k+1)
printf(“%d”,m);
}
}
C語言編寫輸出100到200之間的全部素數並統計個數?
首先定義一個素數判斷函數fun,int fun(int x),在裡面如果x能被2整除,return 0,然後進入一個以3為初值,步長為2,條件測試表達式為sqrt(x)的for循環,如果x能被i(循環變數)整除,則也是return 0,最後,添加返回語句return 1。
然後在main函數中建立一個以100為初始值,測試條件為200,步長為1的for循環,循環體里執行的是以循環變數為參數調用fun函數,如果它的返回值是1,則輸出循環變數的值,並對統計變數的值加1,最後,循環結束後,輸出統計變數的值。
原創文章,作者:HJED,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/140074.html