c程序获取素数错误i

Posted

技术标签:

【中文标题】c程序获取素数错误i【英文标题】:c program of getting prime factor error i 【发布时间】:2022-01-10 22:42:19 【问题描述】:

当它为 outputlast 输出 repat itslef 时,您会看到它是一个获取素数的代码,例如- 输入为 15 输出应该是 3 和 5 但它给出了 3 5 和 5

#include <stdio.h>
#include <string.h>
int primefac(int n, int count)

    while (n > 2)
    
        int i = 2;
        while (n % count == 0)
        
            if (count % i == 0 && count == i)
            
                printf("%d\n", count);
                n = n / count;
                primefac(n, 3);
            
            else
            
                i++;
            
        
        count++;
    

int main()

    int n, i = 3, j = 2; // i to get prime factor j is for to check i is prime or not .
                         //n takes input
    scanf("%d", &n);

    while (n % 2 == 0)
    
        printf("%d\n ", 2); // it prints if the no has  factors of 2;
        n = n / 2;          //  it removes factor of from n;
    
    primefac(n, 3);
    return 0;

【问题讨论】:

你调试了吗?如果有,你发现了什么?在调试器中运行您的程序,并逐行检查它,以便在它运行时检查它。 How to debug small programs. @kaylum 我不知道如何调试任何程序?? 【参考方案1】:

if语句中函数的内部调用

        if (count % i == 0 && count == i)
        
            printf("%d\n", count);
            n = n / count;
            primefac(n, 3);
        

输出 5,函数的调用者也为数字 15 输出 5。

【讨论】:

@peter 我没明白,请您详细说明或提供正确的代码.. 谢谢

以上是关于c程序获取素数错误i的主要内容,如果未能解决你的问题,请参考以下文章

C语言编程,求大神解释错误在哪?程序要求是:输入一个数,再输出比这个数大的第四个素数。附我的代码!

将输出放入新文件的C程序

c语言 输出[m,n]之间素数 的程序

求一个最快的C语言算素数程序

编写一个C语言程序判断一个数是不是是素数

求"求素数的C语言程序"