oliking 2021-12-05 20:09 采纳率: 100%
浏览 41
已结题

求改错!“输出100以内孪生素数对”解决问题必采纳

#include <stdio.h>
#include <math.h>
int prime(int n);

int main()
{
int n;
for(n=2;n<=100;n=n+2)
{
if(prime(n)==1 && prime(n+2)==1)
printf("%d,%d/n",n,n+2);
}

return 0;

}
int prime(int n)
{
int i,k;
k=sqrt(n);
for(i=2;i<=k;i=i+2)
if(n%i==0)return 0;
if(i>=k+1)
return 1;
}

  • 写回答

1条回答 默认 最新

  • 索利亚噶通 2021-12-05 20:11
    关注

    你这代码格式太乱了, 直接写了一个新的(想改错你把所有代码都弄成代码格式别人才会看)

    
    #include<stdio.h>
    #include<math.h>
    bool isPrime(int number){
        int temp = sqrt(number);
        for(int i = 2; i <=  temp + 1; i ++)      // 判断number是否是素数 
            if (number % i == 0)
                return false;
        
        return true;
    } 
    
    
    int main(){
        int a[100] = {0};   // 存放所有素数
        int idx = 0;
        
        for (int i = 2; i <= 100; i++)
            if (isPrime(i))
                a[idx++] = i;
    
        for (int i = 1; i < 100; i++)
            if (a[i] - a[i-1] == 2)
                printf("素数对为 %d 和 %d\n", a[i - 1], a[i]);
         
    } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月14日
  • 已采纳回答 12月6日
  • 创建了问题 12月5日