#includestdio.h
咸陽網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,咸陽網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為咸陽近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的咸陽做網(wǎng)站的公司定做!
#includemath.h
void main()
{
int input_x,result;
printf("Please enter a INT number: ");
scanf("%d",input_x);
result = prime_number(input_x);
printf("%d, ",input_x);
if(result)
{
printf("It is a prime number");
}
else
{
printf("It is 'not' a prime number");
}
}
prime_number(num)
{
int a,i,temp;
temp = 0;
a=sqrt(num);
for(i=2;i=a;i++)
{
if(num%i==0)
{
temp = 1;
break;
}
}
if(temp == 0)
return 1;
return 0;
}
工具/材料
ubuntu,vim,gcc
01
打開ubuntu并開啟一個終端,輸入命令vim is_prime.c,打開編輯頁面,輸入預(yù)處理指令#includestdio.h用于在主函數(shù)中調(diào)用判斷函數(shù)。然后定義一個函數(shù)int is_prime(int n),即判斷整數(shù)n是否為素數(shù)。
02
首先,判斷這個數(shù)是否小于2.若是,則直接返回0,即表示它不是一個素數(shù)。
03
然后定義中間的因數(shù)i,初始值為2。依次使n對i取余數(shù),看n能否整除i,然后令i自增直到i的平方大于n。在這過程中,如果遇到n能整除i,則說明n不是一個素數(shù)。如果循環(huán)能夠直到i的平方大于n才結(jié)束,說明n是一個素數(shù)。
04
接下來,我們使用主函數(shù)進(jìn)行測試,使用printf("%d : %d\n", n, is_prime(n))的格式進(jìn)行輸出。如果輸出結(jié)果為0,說明不為素數(shù);結(jié)果為1,說明是一個素數(shù)。
測試的數(shù)據(jù)依次是2,4,9,15, 17, 23, 25。
05
退出編輯器vim,然后使用gcc編譯并運(yùn)行它,得到結(jié)果。通過結(jié)果我們可以看出,預(yù)期的結(jié)果與我們對于素數(shù)的認(rèn)知是相同的,說明我們的程序編寫沒有錯誤。以下是所有的源代碼:
#include stdio.h
//判斷一個數(shù)是否為素數(shù)的函數(shù)定義
int is_prime(int n)
{
//判斷n是否小于2.若小于則直接返回0
//表示n不是一個素數(shù)
if(n 2)
return 0;
//定義一個中間變量i,初始化i=2
int i = 2;
//依次判斷每一個不大于根號n的i是否能被n整除
for(i = 2; i * i = n;i++)
{
//如果能夠整除
if(n % i == 0)
//直接返回0,表示n不是一個素數(shù)
return 0;
}
//如果程序運(yùn)行到這里,說明i*i大于n
//說明n是一個素數(shù)
return 1;
}
int main()
{
printf("%d : %d\n", 2, is_prime(2));
printf("%d : %d\n", 4, is_prime(4));
printf("%d : %d\n", 9, is_prime(9));
printf("%d : %d\n", 15, is_prime(15));
printf("%d : %d\n", 17, is_prime(17));
printf("%d : %d\n", 23, is_prime(23));
printf("%d : %d\n", 25, is_prime(25));
return 0;
}
#include stdio.h
int is_prime(int x)
{
int i;
for(i=2;i*i=x;i++)
if(x%i==0)
return 0;
return 1;
}
int main()
{
int n,flag=0,i;
scanf("%d",n);
for(i=2;i*i=n;i++)
{
if(is_prime(i) is_prime(n-i))
{
flag=1;
printf("%d %d\n",i,n-i);
}
}
if(flag==0)
printf("No answer\n");
return 0;
}