gpt4 book ai didi

c - 需要帮助在 {c} 中制作素数行

转载 作者:行者123 更新时间:2023-11-30 19:14:46 24 4
gpt4 key购买 nike

我需要在 {c} 中编写一个程序,该程序将为我输入的数字提供素数(例如用户输入 50. 写回 229)所以,我在制作循环时陷入困境。我试图定义 row[100] 为 row[0]=2,row[1]=3 然后我使 i=4 并尝试创建一个循环,将数字 i 除以每个数字在行中(因为我知道那些是素数)并获取模块(0后面的数字,不确定英语怎么说),然后如果它们都有模块!=0那么我知道它是素数并且我想将其添加到行中。

那么有人可以帮我写这行吗?提前非常感谢:)

#include <stdio.h>
int main ()
{
int i,numb=4,position,temp,temp1,row[100];
printf(" enter position (1-100)\n");
scanf("%d",&position);
if (position>100||position<0 )
{
printf("error,enter position between 1 and 100");
return(0);
}
row[0]=2;
row[1]=3;
i=2;
do
{
temp=numb%2;
temp1=numb%3;
if (temp!=0 && temp1!=0)
{
row[i]=numb;
i++;
}
numb++;
}
while (i<100);
printf("%d. prime number is %d",position,row[position]);
return 0;
}

好的,所以我需要将请求模块的部分从除法 2 和 3 更改为请求模块从当时行中的所有数字除法。谢谢您的帮助

最佳答案

#include <stdio.h>

#define MAX_N 100

int main(void){
int i, odd, temp, position, n = 0, row[MAX_N];

row[n++]=2;
row[n++]=3;
for(odd = 5; n < MAX_N; odd += 2){
int is_prime = 1;//true
for(i = 1; i < n; ++i){
temp = row[i];
if(temp * temp > odd)
break;
if(odd % temp == 0){
is_prime = 0;//false
break;
}
}
if(is_prime)
row[n++] = odd;
}

printf(" enter position (1-%d)\n", MAX_N);
scanf("%d", &position);
if (position > 100 || position < 1){
printf("error,enter position between 1 and %d\n", MAX_N);
return 0;
}
printf("%d. prime number is %d", position, row[position - 1]);

return 0;
}

关于c - 需要帮助在 {c} 中制作素数行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33576181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com