要求满足x%n!=0,n的最小正整数,但是结果一直是1


#include<math.h>
#include<iostream>
using namespace std;

int main() {
    long long x, z = 1;
    cin >> x;

    for (int n = 1;;n++)
    {
        for (int y = 1;y <= n;y++)
        {
            
            z = z * y;
        }

        if (x % z == 0) {
            cout << n;
            break;

        }


    }


}

在 for (int y = 1;y <= n;y++)前面加一句:z = 1; 每次循环都需要把z重置为1

 

#include<math.h>
#include<iostream>
using namespace std;
int main() {
    long long x, z = 1;
    cin >> x;
    for (int n = 2;x <n;n++)
    {
        z = 1;  //注意这里,每次循环都要把z重置为1
        for (int y = 1;y <= n;y++)
        {
            z = z * y;
        }
        if (x % z == 0) {
            cout << n;
            break;
        }
    }
    return 0;
}

不是要!=0么,为什麽你判断x%z==0呢?
n=1时,y循环只能是y=1,那么z=z*y也是1,任何数对1求余只能是0,0==0必然成立啊

for (int n = 1;;n++)
{
z = 1;
for (int y = 1;y <= n;y++)