在程序的開頭加入#include
成都一家集口碑和實(shí)力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團(tuán)隊(duì)和靠譜的建站技術(shù),十載企業(yè)及個(gè)人網(wǎng)站建設(shè)經(jīng)驗(yàn) ,為成都1000多家客戶提供網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站開發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營銷型網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),同時(shí)也為不同行業(yè)的客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機(jī)械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選創(chuàng)新互聯(lián)建站。
下面是fun函數(shù):
int
fun(int
mm,int
b[max])
{
int
i,mmm,n=0;
for(mmm=2;mmm=mm;mmm++)
{
for(i=2;i=sqrt(mmm);i++)
if(mmm%i==0)
break;
if(isqrt(mmm))
{
b[n]=mmm;
n+=1;
}
}
return
n;
}
分析:
如果mm=1,外循環(huán)不啟動(dòng),直接返回n,此時(shí)n=0
如果mm=2,外循環(huán)啟動(dòng),內(nèi)循環(huán)i=sqrt(mmm)的條件不滿足,不啟動(dòng),內(nèi)循環(huán)下面的判斷條件滿足,于是讓b[n]=mmm,n+=1,即找到一個(gè)符合條件的素?cái)?shù),此時(shí)b[n]既b[0]=2,然后n+=1,表示符合條件的素?cái)?shù)的個(gè)數(shù)加1
同樣,當(dāng)mm=3的時(shí)候,內(nèi)循環(huán)由于條件不滿足,是不會(huì)執(zhí)行的,但是在內(nèi)循環(huán)下面的條件判斷都滿足,所以會(huì)把結(jié)果保存在n和b[n]里面,這時(shí),外循環(huán)要執(zhí)行2次
當(dāng)mm3時(shí),內(nèi)循環(huán)也會(huì)啟動(dòng),但是要等內(nèi)循環(huán)結(jié)束之后i的值滿足條件的才是素?cái)?shù),程序的可靠信完全可以放心
剛剛又重新分析了一遍代碼,稍微改了改,沒問題了
/*
m = 900102
最接近的回文素?cái)?shù)是1003001。
Press any key to continue
*/
#include?stdio.h
#include?math.h
int?IsPalindromeNum(int?num)?{
char?s[10],i?=?0,j;
while(num??0)?{
s[i]?=?num?%?10?+?'0';
num?=?num?/?10;
i++;
}
s[i]?=?'\0';
i--;
for(j?=?0;j??(i?+?1)/2;j++)
if(s[j]?!=?s[i?-?j])?return?0;
return?1;
}
long?gmval(int?m)?{
int?i,j,flag;
if(m?%?2?==?0)?m++;
for(i?=?m;i??10?*?m;i?+=?2)?{
flag?=?1;
for(j?=?2;j?=?sqrt(i);j++)?{
if(i?%?j?==?0)?{
flag?=?0;
break;
}
}
if(flag??IsPalindromeNum(i))
return?i;
}
return?0;
}
int?main()?{
unsigned?long?m,res;
printf("m?=?");
scanf("%d",m);
res?=?gmval(m);
if(res)?printf("最接近%的回文素?cái)?shù)是%d。\n",res);
else?printf("在%d--%d范圍內(nèi)沒有找到回文素?cái)?shù)。\n",m,10?*?m);
return?0;
}
1、首先打開vc6.0,新建一個(gè)控制臺(tái)項(xiàng)目。
2、然后我們添加頭文件。
3、然后我們添加main主函數(shù)。
4、然后我們定義6個(gè)long型變量。
5、然后我們使用scanf給input賦值。
6、然后我們分解個(gè)位、百位、千位、萬位。
7、然后我們使用if判斷。
8、然后我們運(yùn)行程序,看看結(jié)果已經(jīng)能判斷回文數(shù)。
【題目】:
題目:如果一個(gè)數(shù)從左邊讀和從右邊讀都是同一個(gè)數(shù),就稱為回文數(shù)。例如6886就是一個(gè)回文數(shù),從給出的數(shù)據(jù)中統(tǒng)計(jì)出既是回文數(shù)又是素?cái)?shù)的數(shù)(109)。
【思路分析】:
首先,你輸入的是整數(shù)(x),計(jì)算機(jī)不能像人腦一樣直接得到每個(gè)數(shù)位(數(shù)組a[10])。
所以,要先判斷數(shù)位(n),然后只要數(shù)位數(shù)組中a[i]=a[n-i]即可。
關(guān)于素?cái)?shù),設(shè)置一個(gè)for循環(huán),只要從1到x都不存在能整除x的數(shù),就是素?cái)?shù)了。
【代碼如下】:
#include stdio.h
#includewindows.h
int main()
{
int
a[1000];
int
n;//輸入整數(shù)的個(gè)數(shù)
printf("請(qǐng)輸入整數(shù)的個(gè)數(shù):\n");
scanf("%d",n);
int
i;
printf("請(qǐng)輸入這%d個(gè)整數(shù):\n",n);
for(i=0;in;i++)
scanf("%d",a[i]);
int
result_1;//值為1表示是回文數(shù),值為0表示不是。
int
result_2;//值為1表示是質(zhì)數(shù),值為0表示不是。
int
palindrome(int y);//判斷回文數(shù)的函數(shù)
int
prime(int y);//判斷質(zhì)數(shù)的函數(shù)
int
y;//y是要代入函數(shù)里的參數(shù)
int
num=0;//num用來計(jì)總共有幾個(gè)符合條件的數(shù)
int
b[1000];//b[1000]是符合要求的數(shù)組
for(i=0;in;i++)
{
result_1=0;//先使初值=0。
result_2=0;
y=a[i];
result_1=palindrome(y);
result_2=prime(y);
if((result_1==1)(result_2==1))
{
b[num]=a[i];
num++;
}
}
if(num0)
{
printf("總共有%d個(gè)既是回文數(shù)又是質(zhì)數(shù)的數(shù):\n",num);
for(i=0;inum;i++)
printf("
%d",b[i]);
printf("\n");
}
else
printf("輸入的整數(shù)均不符合要求\n");
system("pause");
return 0;
}
int palindrome(int y)
{
int
a[10];//a[10]表示y的各個(gè)數(shù)位的值
int
i=0;
while(y=1)
{
a[i]=y%10;//y%10就得到y(tǒng)的末位
y=y/10;//讓倒數(shù)第二位變成了末位
i++;//i最后又自加了一次,所以i就表示y有多少位
}
int
j;
int
z=1;
for(j=0;j=(i-1)/2;j++)
{
if(a[j]!=a[(i-1)-j])
{
z=0;
break;
}
else
continue;
}
return
(z);
}
int prime(int y)
{
int
i,z;
z=1;
for
(i=2;iy;i++)
{
if(y%i==0)
{
z=0;
break;
}
else
continue;
}
return(z);
}
【測試數(shù)據(jù)】:
n = 168
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53
59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163
167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271
277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397
401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521
523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647
653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787
797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929
937 941 947 953 967 971 977 983 991 997
【測試結(jié)果】:
請(qǐng)輸入整數(shù)的個(gè)數(shù):
168
請(qǐng)輸入這168個(gè)整數(shù):
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53
59 61 67 71 73 79 83 89 97 101 103 1
07 109 113 127 131 137 139 149 151 157 163
167 173 179 181 191 193 197 199 211 2
23 227 229 233 239 241 251 257 263 269 271
277 281 283 293 307 311 313 317 331 3
37 347 349 353 359 367 373 379 383 389 397
401 409 419 421 431 433 439 443 449 4
57 461 463 467 479 487 491 499 503 509 521
523 541 547 557 563 569 571 577 587 5
93 599 601 607 613 617 619 631 641 643 647
653 659 661 673 677 683 691 701 709 7
19 727 733 739 743 751 757 761 769 773 787
797 809 811 821 823 827 829 839 853 8
57 859 863 877 881 883 887 907 911 919 929
937 941 947 953 967 971 977 983 991 9
97
總共有20個(gè)既是回文數(shù)又是質(zhì)數(shù)的數(shù):
2 3
5 7 11 101 131 151 181 191 313 353 373 383 727 757 787 797 919 929
請(qǐng)按任意鍵繼續(xù). . .