? 給定兩個四位正整數 a,b,找出這兩個數之間(含)所有滿足以下條件的數:
? 1.這個四位數是質數;
? 2.千位數字與百位數字構成的兩位數 AB 是一個完全平方數;
? 3.十位數字與個位數字構成的兩位數 CD 是一個完全平方數
#include<stdio.h>
int main()
{
int a,b,c=0,i,j,p1,p2,n=0;
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)
{
c=1;
break;
}
else
c=c;
}
if(c==0)
{
p1=i/100;
p2=i%100;
if(p1==16||p1==25||p1==36||p1==49||p1==64||p1==81)
{
if(p2==1||p2==4||p2==9||p2==16||p2==25||p2==36||p2==49||p2==64||p2==81)
{
n=n+1;
printf("%d\n",i);
}
}
}
}
printf("%d",n);
}
為什么我的代碼在運行的時候始終進不了if(c==0)這個里面,誰能指教一下,有點困惑。
uj5u.com熱心網友回復:
#include<stdio.h>
int main()
{
int a,b,c=0,i,j,p1,p2,n=0;
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)
{
c=1;
break;
}
else
c=c;
}
if(c==0)
{
p1=i/100;
p2=i%100;
if(p1==16||p1==25||p1==36||p1==49||p1==64||p1==81)
{
if(p2==1||p2==4||p2==9||p2==16||p2==25||p2==36||p2==49||p2==64||p2==81)
{
n=n+1;
printf("%d\n",i);
}
}
}
c = 0; //需要重新初始化
}
printf("%d",n);
}
供參考~
需要對c重新初始化
uj5u.com熱心網友回復:
/* 冗余代碼~
else
c=c;
*/
這部分是冗余代碼,建議刪掉~
或者這兒改成如下:
else
c=0;
uj5u.com熱心網友回復:
已解決,謝謝??
uj5u.com熱心網友回復:
#include<stdio.h>
int main()
{
int a,b,c=0,i,j,p1,p2,n=0;
scanf("%d%d",&a,&b);
for(i=a; i<=b; i++) {
c = 0;
for( j=2; j<i/2; j++) { //判斷是否為素數
if(i%j==0) {
c = 1;
break;
} /*else
c=c; */
}
if(c==0) {
p1 = i/100;
p2 = i%100;
if (p1==16||p1==25||p1==36||p1==49||p1==64||p1==81) {
if(p2==1||p2==4||p2==9||p2==16||p2==25||p2==36||p2==49||p2==64||p2==81) {
n = n+1;
printf("%d\n",i);
}
}
}
}
printf("n=%d\n",n);
return 0;
}
請看看這個程式,修改了個別地方。其實這個演算法可以更優化的。
uj5u.com熱心網友回復:
#include<stdio.h>
#include <stdbool.h>
int main()
{
int a, b, num, num1, num3, k, n=0;
bool flag;
scanf("%d%d", &a, &b);
for ( num1=4; num1<=9; num1++ ) {
for ( num3=1; num3<=9; num3++ ) {
num = num1*num1*100 + num3*num3; //產生滿足條件的4位數
if ( a<=num && num<=b ) { //若生成的4位數在指定范圍內,則判斷是否為素數
flag = true;
for( k=2; true && k<num/2; k++) { //判斷是否為素數
if ( num%k==0 ) {
flag = false;
}
}
if ( flag ) { // 若是素數,則計數并輸出
n++;
printf("%d\n", num);
}
}
}
}
printf("n=%d\n", n);
return 0;
}
可以驗證一下這個程式是否正確。
uj5u.com熱心網友回復:
看見這代碼就頭疼,你可以用一下縮進的,代碼要有點規范的樣子嘛!轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/39455.html
標籤:C語言
上一篇:C語言scanf
